It might depend on how you texture, because if you need to save as a .X file, your stuck with the unholy task of making your own exporter (writing the .X file manually), or using meshes.
If you create a mesh from an object, you can add it to other objects as a limb, offset, rotate - great for level design.
If you make a mesh from a limbed object, the limbs are 'welded' in place, the mesh will have all the geometry that was there before, but in a single mesh.
Now for the nasty bit - meshes do not save their texture information, you would have to texture manually - maybe that's the best option though. So if your objects share the same texture, you can combine them into meshes, if your limbs need their own texturing then you would have to use DBO files, which support any type of object.
Personally, I would tend to have all my level bits as individual meshes, then add them as new objects or add them to other objects. Prefabs could be exported, and the actual limb information could be saved instead of handling it internally. You could even have low poly versions of your meshes, and add them in exactly the same way, but only use them for collision detection.
So those golden rules again:
Objects can have meshes added to them as limbs.
Objects can be saved as DBO files, with limbs intact.
Meshes can be made from objects, but meshes are singular, no limbs or anything like that.
Meshes can be saved as .X files.
From a performance standpoint as well - once all your textures and meshes are in memory, it is very quick to create new objects, so it might afford you the option of optimising to suit that. Like maybe you don't need to stop and load the next stage, maybe just load up the level data as you go, creating the new geometry as you go, and getting rid of old geometry too. When you can just build the object inside the engine instead of loading it, well you can do some fancy GTA style seamless stuff.