These are all fairly unrelated concepts, actually.
Culling is something the engine does automatically, you don’t have to do anything to get it. Things that are still loaded, are just not drawn. It helps render times.
The closest thing to this, would be World Partition. It’s the default in UE5. You can just make a massive world, and then engine does the rest for you.
Soft references are not related to level streaming. If soft references are used correctly, they can mean you can decide when something loads, rather than the engine. You can have a soft ref to a level, but they also can reference most other kinds of actors ( players, weapons, blueprints… ).
Level streaming is a way of simultaneously loading more than one map ( level ).
Spawning and destroying is related to the items in the world, rather than the world itself ( roughly speaking ). You don’t really have to be careful with this, unless you’re thinking of spawning a lot of actors ( 100s to 1000s ).