There would be so many workarounds and complications you would have to deal with when programming that people would be yelling to change it back if I did this.
What happens if the user does this?:
mesh=LoadMesh()
CountChildren(mesh)//mesh is not loaded yet. Should it wait? Should it crash? Should it only return the loaded children?
Now let's say your program loops through all meshes in the scene and does something. After it finishes, a mesh that was loading appears! Now you can't figure out why that one mesh was unaffected by what you just did.
Your entity counts would change during other routines which could easily cause random crashes if you are not careful with your code. It's hard enough now to keep everything in order and bug free. This would continuously introduce a lot of new bugs in my code, and in your own games.
There's a thread on the Unreal forum where a person who is familiar with LE asks how to alter a mesh's vertices at runtime. The answer was that you could not with that engine. That's just one example of the tradeoffs of freedom this kind of thing involves.
If I allow multiple terrains, then all terrain shaders like grass color, vegetation height, or vehicle dust color are broken.