Yes I agree with everything here. My current approach is to provide users a very stripped down WYSIWYG editor and to sanitise content when it’s plonked in the database. This solution gets me by, but it still sucks.

There are innovations in this area. The Aloha Editor (edit in place) mentioned above is clever, although I understand the reasonings why this isn’t always a perfect solution.

The Google Docs new WYSIWG (Kix) is unique in that it doesn’t rely on contenteditable or designMode like all other WYSIWYGs. This more constrained and controlled approach alleviates some of the typical problems with WYSIWYG. Similarly, there are Canvas based text editors emerging that could in theory be used to provide WYSIWYG-like functionality, without some of the inherent problems of the usual editors.

An interesting approach I’ve seen recently (not on the web) is how iA Writer on the Mac handles markdown text, focussing strongly on typography and providing nice visual feedback on your markdown syntax.

I dont know what the one single solution is, but there’s a few different ways of tackling this problem. There IS a better way.