Having recently switched to CSS based layouts for the last 5-6 websites I built, I have to say I'm very pleased with the results. I love the separation of content from presentation & formatting and the minimal amount of code in my HTML pages (not to mention their small file size). And as the advent of mobile devices increases with people surfing the web on their phones and what not, I think this simplicity in layout is necessary. We're actually going back to 90's web development where we have to build pages that "degrade gracefully" for those browsers that don't support fancy tables, slow connections that load images at snails' paces and tiny screen sizes that make designers cringe. I especially like disabling the stylesheets altogether and viewing my template "in the raw". The look and feel reminds me of the good ol' days (black on white with blue and purple links). More importantly, though, is the fact that the website is actually readable and easy to navigate despite it having, essentially, no layout and only basic markup.
Having said all that, however, I still miss some of the control we get with table based layouts (how was the segue?). If you remove accessibility concerns, if you ignore page loading times and the benefits of separating content from layout (I mean, really, those are all pretty trivial ;), then for my money, you just don't get any better layout control than you do with tables. Their ability to nest, span and stretch provided all the flexibility and control I ever needed to translate pretty much ANY design layout into an HTML template. And, unfortunately, I can't say the same for CSS. From the floating div hacks (set width and overlow: auto to make sure the parent div contains its children) to the inability to natively center items in a logical way (what's the deal with using text-align to center an image or margin: 0 auto to center the div itself?), I find CSS a fairly clunky and unintuitive layout tool. Don't get me wrong, I've seen some very well designed websites built entirely with CSS and of course I have more to learn. But, utlimately, I feel that CSS is actually a pretty poor layout mechanism. Oh, it's great for markup and formatting, but page layout is actually a different animal altogether.
I think, really, what we're dealing with is the same thing we've always been dealing with. And that's the fact that the World Wide Web was never built to accommodate page layout. HTML is, after all, a MARKUP language (hence the "M"). Designers and developers have been struggling since day one to crowbar a variety of HTML tags into page layout elements for visual control, but whether we use tables or floating (and containing) divs, the endless battle of trying to stick this image there and that line of text here continues.
I won't be shying away from CSS layouts any time soon, however. In fact, I'm loving it more and more each time I employ it, but it's definitely impacting my design and layout decisions when I'm mocking up pages in Photoshop. Whether this is good or bad (i.e. HTML influencing design or design influencing HTML), I'm not quite sure. One thing I'd like to see, however, is a brand new set of HTML tags designed specifically for page layout. My brain has been working on this for a while but I won't post any preliminary pseudo-code until after I flesh out the idea a bit more.
Furthermore, this leads into a larger discussion about the future of the WWW in general, and whether or not HTML should continue to be its native language. As ubiquitous internet access (i.e. "the juice") proliferates, and as a larger variety of devices converge and connect to the juice, we may need to rethink the language and protocol each of these devices use to communicate. And for that matter, I'm sure it's already being handled by powers greater than me.