For many years I've followed the public line of the W3C: you should separate concerns, keep the html close to the data and use CSS for the presentation. Like other web developers, I've struggled between the right way to do things and the way that works (even when the experts don't agree what the right way is-- google CSS 3-column layouts for example). I've cursed browser makers for the seemingly arbitrary rules they use to render margins, box-models and standard controls. And I've struggled to understand the vaguest definitions of resolution and weighting models ever written.
But then I realized the other day, that the W3C simply lacks expertise in presentation-side implementation. At first this might seem like an outrageous claim but consider that there are two other standards that are at least as old as web standards that get this right: OpenGL and Postscript.
Both of these standards have a predictive presentation model -- if you say draw something at a given coordinate, you get something at a given coordinate, on any opengl hardware in existence, on any postscript printer in existence. There's no crying about "relative" units either -- OpenGL units are completely relative, but they are superior to W3C notions of length because they are consistent! It's a far cry from an industry that can't even render their own standards correctly or consistently.
So why can't web standards give us the same predictability? I think it's because the W3C is fundamentally confused about it's purpose and goals. On the one hand they wish to promote the idea of the semantic web (which is primarily a data-centric view), and on the other they want to begrudgingly hand some presentation layer scraps to visual designers who do the most heinous things imaginable to get their work done. I say "begrudgingly" because CSS was only proposed when table-layout threatened to blot out the semantic web forever. I still get the impression that the W3C views presentation concerns as an annoyance that interferes with their data-centric preferences.
I know there is some good work being done in CSS3 and HTML5 that we have yet to feel in the mainstream site design (and even when we do, we'll have to consider the mishmash of currently deployed browsers to make it work correctly), but it's too little, too late.
The W3C's biggest nightmare is already happening, people who care about consistent, quality presentation are turning to rich internet application frameworks such as Flex and Silverlight because it's just so much easier to use. These platforms solve the browser problem by completely bypassing it -- the plug-in suddenly becomes the new browser! They can even back their presentation with xml datasources as well, so other clients can choose to view the pure xml (which is even better than XHTML for semantic purposes since it doesn't need to be cluttered with presentation cruft).