I have two opinions regarding xHTML. First, xHTML should not be used for public consumption. Second, xHTML should be used for public consumption. The latter stems from the original vision of xHTML and the W3 recommendation that the World Wide Web transition away from HTML to XML/xHTML. The former stems from this failure.
The problem with xHTML 1.0 is not inherent, but relative to the need for xHTML/XML user agents to parse xHTML pages. What made this worse is the informative suggestion of xHTML 1.0's Appendix C. This suggested that xHTML could be served to HTML user agents, even though xHTML was incompatible with HTML, because existing web browsers (which were and are the most popular form of user agent) already had built in error correction facilities that would overlook the incompatibilities as tag soup syntax errors. The implication of Appendix C was a reliance on the HTTP protocol capability to send user agents what document types were available (and user agents to advertise what they could use), so that server negotiation (such as Apache's MultiViews directive) would send an xHTML document as text/html for HTML user agents, and as application/xhtml+xml for xHTML and XML user agents.
The W3, and Tim Berners-Lee, have decided to slow down the approach to an XML only world wide web. The future is to deprecate xHTML 1.0 with new recommendations that will attempt to replace xHTML 1.0 with xHTML 5, while replacing HTML 4.01 and ISO HTML with HTML 5. This will allow an intermediate process of adoption of XML technologies, while still allowing user agent developers, such as those for the HTML only Internet Explorer web browser, to continue as they are.
This is a more realistic model. Standards recommendations should reflect what people do well, not what standards bodies want people to do. The problem with xHTML 1.0 was a lack of foreseeing that not every one would adopt XML immediately, or understand how it is different. This had the very opposite effect that xHTML 1.0 was intended to achieve.
As much as my preference is for the adoption of xHTML, for now the best solution seems to be to abandon xHTML 1.0 for public consumption (abandoning the Appendix C model), use xHTML technologies (Ruby, XForms, MathML, etc.) where its XML capabilities are useful (such as in embedded and mobile devices), and use the existing HTML 4 recommendations, and the ISO standard based on it, for the general public until such time as HTML only user agents are no longer prevalent.
