I've read Simon Peyton Jones's Beautiful Code excerpt (http://lambda-the-ultimate.org/node/1964 for those who need it), and it's very nice.
I would be interested in the "too much overhead" article -- can you track it down? I've been researching STM for a while and seen a lot of papers focused on performance and such, so I'd be surprised if whatever the article claims are the problems are not fixable in the long term.
(STM can be nearly reduced to "taking locks", especially if you are compiling, so it really shouldn't be worse than lock-based synchronization, and it's much easier to reason about.)