Of course each building must be as a separate object: in this way you'll be using instancing.
I have a question about indoors and portals: i remember, there were a post from Josh with "tunnel" level, there were something about portals. So, it "portaling" works by default, or i must enable it?
I mean, if i have a labyrinth from separate models like this
= \
|| ||
\====/
would the portals, that are not visible, be culled by default?