There are so many different possibilities for the inners and outers that you list above that it is not worth typing out how it should be done. I'll point you at the (unnamed) course in this changeset that I worked on this morning. Most everything should be tagged correctly now. If you'd like to find an example that you feel is wrong, paste the url of the piece and I'll take a look and discuss further.

I'd like to see an example of the "vastly increase[d] query times". Can you provide me an example query that takes an inordinate amount of time? Maybe the query isn't structured well? I don't know, but until I see it I can't know.

I don't see a "hierarchy nightmare". I see something that makes complete sense logically and is represented correctly geometrically. Yes, you can have a bunker inside a rough inside a fairway inside a rough. It's not that complex. And when you go and use spatial databases and query the area of rough, since everything is correctly tagged and laid out, you get the answer you're looking for.

Don't confuse "unusable" for "poorly implemented". If there is some software isn't written correctly to handle these complex relations, then it is the problem.

As for parent lines that have lost their tag... I've heard of this misconception before. The tag is still there, it is just where it should be: on the relation, and not the outer boundary. I've been meaning to write up a document to give some visual examples of this. Take a simple green in a fairway. The line the defines the outer fairway isn't the fairway. It's the fairway minus the green. And if you look at the relation, you'll see the outer/inner relation correctly defines that.
