I like the diabolo approach- when you kill enemies, no more respawn and you can clear out areas, but when you exit the game everything has respawned. That way, I dont have to fight the same pack of dwarf skelebots everytime I go through the Atrium, but next time I fire the game up and go to the house, they are there to fight me again.
I think that's a good way to do it, yeah -- I never actually played Diablo.
say WHAT? In the name of game development and awesomeness, you should take 6 hours out to play Diabolo II! It reminds me of this game in a number of ways, and it gets EVERYTHING right- GUI, loot, balance, variety and character progression.
I think its important that killing regular enemies gives some benefit, just considerably less benefit than killing bosses and looting caves. That way, you dont feel like you are wasting resources when you mow through enemies, but you are only mowwing through enemies in order to reach bosses and caves.
Having different enemy types have a % chance to drop a quantity of instantly applied health or mana would be good.
Having them give a relatively small quanitity of experience would be good, so long as it is way less efficent than other ways of getting exp (that way, farming is inefficent).
Re: basic monsters dropping loot- how about they drop loot occasionally, but the only type of loot they drop are scrolls for summoning that type of friendly monster
that way, you can go and kill dwarf skelebots until you have a few summon dwarf skeleton scrolls, then unleash them on the next miniboss !