It seems that according to the geojson spec, FeatureCollection is NOT a feature itself, and therefore cannot be recursively added. That said, it also seems that the Leaflet's implementation is more permissive and allows for that, as well as for an array of features.
Internally we use an array to combine features from multiple groups, but in the backend I am forced to convert top level array into a FeatureCollection, and recursively expand any FeatureCollections inside into lists of features.
Should we officially disallow any nested FeatureCollections (as part of the json schema), and keep using the Leaflet's array handling capability to avoid expanding top-level collections? On the backend I will expand the top-level featurecollections.
This will force us to be more strictly compatible with geojson (even though we do extend it with type: ExternalData