Simon Willison has now successfully served his weblog as application/xhtml+xml, with comments enabled, for nearly a year. His own PHP HTML checker keeps comments sane:
The system I have implemented works by running submitted posts through an XML parser, which checks that each element is in my list of allowed elements, is nested correctly (you can't put a blockquote inside a p for example) and doesn't have any illegal attributes.
He uses Jesse Ruderman's excellent bookmarklet to validate his own posts.
It can be done.