I think that making your level in 1 go is a good idea - like use a massive terrain and forget optimising in the editor itself. Then in your engine, maybe split that terrain downto 128x128. Like if your main heightmap was a handsome 1024x1024 image, you could chop a 128x128 square out and create the heightmap from that, and you'd easily be able to check which objects are needed for that chunk.
You could also have a lower resolution terrain for the extra unseen detail - like you'd make it so you can never get to the edges of your terrain without it calculating the next block - then you could have a really low resolution terrain for the whole thing and a high res terrain for your current block.
Also, remember that a skybox is an illusion created by 2D textures, and if you render your own skybox in DBPro, it could show a fairly decent representation of your surrounding level, on just a texture. I'm planning on looking into this for pre-calculating skysheres and skyboxes from raw level data.
It's always a good idea to identify and track your objects, so maybe you could tell each object what it's parent object is, and if the object is inside or outside of it's parent - then you could check which objects need to be loaded when entering a building, and also which objects are only needed when entering a building.
I have a massive RPG project planned for the future, this is how I've been thinking about handling nice big levels and buildings.
Van-B
It's c**p being the only coder in the village.