Adding extra rooms after basic generation is a trick I also learned while developing Kaduria. That way you can simply look for available space and fill it, and those rooms even seem to be logical (storerooms etc.)
That second generation with some kind of cavern looks interesting. How do you avoid the cavern breaking the basic structure (badly)? Or is it supposed to do it?