(To comment on this proposal, please use its talk page.)
Based on a fair amount of practical experience here, I am coming to the conclusion that all pages which have multiple potential meanings (i.e. need disambiguation) should be handled as follows.
The reason why I don't want the main content at [[{foo}]] is that when you have a popular page like tree, it's impossibly painstaking to go click on every entry in What links here, and look through each page, when you get there, to find all the references to tree, to make sure they are all to the arboreal "tree", as opposed to someone who wanted, say, a tree data structure.
The reason why I don't want the disambiguation at [[{foo}]] is because this enables us to quickly check for articles which have linked to [[{foo}]], without the writer of that page checking to make sure they got the right meaning of "{foo}".
The thing is that for many disambiguation pages, there are some meanings of "{foo}" which don't have articles, and linking to the disambig page is the right thing (since the meaning is defined there). E.g. if you look at hack, some of the meanings don't have pages (e.g. party hack), and so some pages do legitimately link to hack (which is a disambiguation page at the moment), e.g. Soviet art.
So even a disambig page can have legitimate links to it. So, if we had the disambig page at [[{foo}]], when you looked at "What links here", you'd still have a mix of legitimate links, and bogus ones (where someone was lazy, and linked to [[{foo}]], without checking to see what they got).
However, if the disambiguation page is always at [[{foo} (disambiguation)]], with a redirect to [[{foo} (disambiguation)]] at [[{foo}]], then all links to [[{foo}]] are automatically bogus, and the rest (to [[{foo} (disambiguation)]]) automatically good - and it will be totally trivial to find the ones that need to be fixed.
I see so many instances of these kinds of problems with disambiguation pages that it's not true. I regularly 'clean' disambig pages I created, and I do other ones all the time.
I just spent a couple of hours, a while back, fixing all the link to Cracker, and more recently did all the ones that linked to hack. I'm about to do links to protocol - and check out What links here for that!
The annoying thing is that you go fix them all - and you go back some months later and they are more, and you have to go check them all, all over again, because you probably don't remember any more which ones were legitimate, and which ones are not. And there's no history on "What links here" you can use, to call out only the ones that have been added since the last time you checked!
Yes, I know a jillion pages already use the old way, but that's no reason to keep making more of them - my primary concern at the moment is to stop things from getting any worse.
As to what to do with the existing ones, yeah, that's a big problem. I'm still pondering what to do about the existing ones.
(To comment on this proposal, please use its talk page.)