There has been a fad recently in web design that involves replacing every table tag with a div tag. Well, what are the practical benefits to this?
Well, there aren't really any real-life benefits to it. The general rule of coding in web design is to keep things clean and simple. While it may, at first, seem that CSS fills this requirement due to the simple XHTML it's designs require, but don't be fooled. It's one thing to use the regular CSS style to replace the same fonts that will be used all over the place. But it's another when you take little bits and pieces of code out of the page and bury it some huge .css file, then try to figure it all out two months later when you want to edit it.
What about cross-compatibility? Not so good with too much CSS. Sometimes, CSS can't even get text styles consistent across major browsers. Microsoft is always adding MS-only non-standard features. Cross-compatibility is not an option for more complex CSS-only sites.
CSS-only designs are primarily to separate the design from the content. But if you ever go back to edit the design it means hours of trying to figure out what styles applied to what content and so forth. So the bottom line is that, contrary to what the css zealots say, avoid at all costs using CSS div's on a site wide basis.