The point of CSS is to separate presentation from markup. This approach uses a hierarchy of divs to define presentation. If that's alright with you, may as well use tables.
But in modern AJAX-y Web 2.0 usage, "markup" doesn't even exist as a distinct storage format any more. To the extent that it does, it's stored in wiki or bbcode or some other cooked "markdown" format. HTML exists in the modern world solely as the presentation layer for a data format defined elsewhere.
So what's wrong with putting layout in the presentation layer where it belongs? As it happens, our HTML presentation layer also contains this nice, intuitive mechanism for doing layout using "tables" that works better than pretty much anything else has (anyone remember the XmForm layout widget from motif?). So explain again why we can't use them?
Sometimes I get the feeling that the CSS layout nuts still think we're living in 1997 and that all web content is written by hand. That's just not how it is any more.
I'm not saying tables are necessarily wrong. I'm saying that this one-line framework is effectively replacing td's with div's, in that the heirarchy of markup defines the presentation. I don't see what value it adds over tables, given the purpose of CSS.
Having started out as a meticulous standards-centric hand-coder with Allaire Homesite, and having slowly moved toward data-driven apps over the years, I thoroughly agree with you. It is worthwhile to write carefully laid out and styled HTML during the template creation phase, but the idea of HTML as data and CSS as presentation does not reflect the everyday reality of MySQL/XML/whatever as data and HTML/CSS as presentation.
CSS is perfectly fine for what it was designed for. Unfortunately, when it was being designed, tables were still viewed as perfectly acceptable for layout, and as far as I can tell, CSS didn't really aim to replace it. It seems to me that it was us OCD designers that wanted semantic markup who adopted CSS for layout, where sane people would use tables.
(EDIT: I should probably clarify that this is 100% speculation, and based in no way on having read anything published by the W3C or anything like that.)
No, CSS is not "perfectly fine for what it was designed for", even if we disregard that it sucks at layout. It's only better than what came before it. It's been over a decade, and we don't even have good layout features or named constants. Of course, CSS's inadequacy is only compounded by the persistent standards noncompliance of certain major web browsers. But call a spade a spade; CSS ain't that great. If it were, we'd all leave tables for tabular data.
Why doesn't someone just fork Safari or Firefox and put in the thing-that-replaces-CSS parsing they'd like to use? A demo is almost always more convincing, and 99% of browser hacking is standards-compliance—it would take much less effort to blue-sky a new presentation language if it was a prototype for which you were the only user.
I thought it was undefined to put block elements in inline elements? You can't put a block element in an inline element but you can put a block element B2 in a block element B1 and then apply display:inline to the B1 element and not get undefined semantics?