I came to the conclusion that "overlapping" rooms were the source of all bad things. They generate two major problems: walls inside the rooms dividing a bigger room area and floors that destroy walls from the original room that was overlapped. This in turn makes it impossible to find a wall facing to certain direction when the other room just wiped them out entirely. Making the two rooms connected wont solve that problem, you would have to connect the two rooms physically to one room with the same room mask id. That was too much for me and I disallowed the creation of overlapping rooms. It's probably going to make some level types less interesting, but I don't care.
I know what you mean. Several things I tried to add didn't work right for me. Like making circular rooms on a grid. Eventually I got them working (2 years later) so I didn't include them in the dungeon generator.
I think making it work is first priority. When thats done, improvements can always be made later.
Right now I don't even use a dungeon generator for my tests.. I just load ascii text files that I hand-edit into maps. I'm majorly refactoring my map creation.. so I don't even have a working dungeon generator in my codebase right now.