It depends really, with enemies for instance, it's a good idea to hide them when not in use - but how could you make (for example) 50 enemies and have only 20 models for them to use. This means that you'd have to make it impossible to have more than 20 enemies on screen. Personally, I'd most likely have 30 or so enemy objects, then once an enemy dies, it can be regenerated somewhere else, keeping a nice even flow of cannon fodder - plus it adds the gameplay dynamic that if your quiet and don't kill the enemies all the time, you don't get more and more enemies comming after you.
For level objects, it's a good idea to have a set number of a particular object you can display in the same area - like if you made 10 lamp posts, and your camera range is 1000 units, you'd make sure that at any give location there is no more than 10 lamp posts - that way you can position each lamp post object at the right place without running out of objects. It's always a good idea to use arrays for this sort of thing, and a function that can count the amount of a specified object in a certain area.
Van-B

I laugh in the face of fate!