I dont see why.
Cryengine is eons above anything unreal engine has ever been.
Works better, renders way better, values performance, addresses bugs timely, etc.
Unless you are working at a gamejam or someone is paying you to use this sorry excuse of an engine, there is really no reason to.
Most if not all methods of built in culling management included in the engine are 2d only.
Even streaming.
Or even worse, based on mesh size on screen.
Usually, the loading/unloading is custom scripted by proximity to a doorway.
As in, you manually load the inside level of a house as the player approaches either a door or a window to look in from.
If you do proper level design, you do the loadong at choke points - this usually results in hangs between levels seen even in AAA titles (god of war for instance. Most level changes happen when passing between a tight wall or raising a doorway).
You can create a manual load/unload system in c++, and you can merge those calls into an octree system which can properly manage loading/unloading of things.
It isn’t that difficult, but it is a bit confusing.
Particularly since almost all the pre-built async methods are show stoppers that cause game thread hangs anyway.
Overall, it may just be better for you to set each level up with a distance from player calculation. It really depends on what you are doing.
For instance, take as an example an apartment complex.
If you are at ground floor, there is no reason to keep the second floor loaded.
As the player/camera goes up the stairs, you may want to load the level above.
Further, you may want to avoid loading the interior of all the apartments in the level, and only load whatver the player is physically adjacent to.
The default level streaming will load all floors or levels of the apartment building, simply based on player x/y position witnin the level.
Note that in almost all cases with an apartment, fustrum culling will prevent the items from being visible - but you can potentially overload memory with a skyscraper and 90 floors…