I know this is one of those topics that never end up with a result that everyone likes or agrees with... Here I go anyway...
I am going to have to put a vote to Tables and Joe's input. The most complicated designs are just not capable of being rendered accurately in all browsers without the aid of at least some tables. "Hacks" is right. There is also a plethora of information on the web detailing some of the hacks that are necessary in order to get CSS to function similar to the way a table can right out of the box. Now, that is not always the right answer for every project, but in at least 90% of my projects, it has continued to be.
The bottom line is to match the design and development efforts against the project goals. What benefit are you getting from one method over the other? What are the downfalls? Out of the lists you just generated, which list better matches the parameters of the project at hand?
You CSS guys/gals, you are right. Pure CSS is better... But only when its function, time, and shortcomings fit within the scope of the project. I enjoy the abstraction of the visual elements from the mark-up and the splicing up of file sizes. However, I consistently NEED to use a mix of the two. Therefore, I am not exclusive to either camp.
That being said, I personally do favor tables over pure CSS designs simply because it gets my projects done with the sites looking the way they are supposed to in ALL browsers, with the least amount of time devoted to it. It keeps the project moving progressively forward. And it warms my cold little heart to tell you that all of my graphic designers (except one) have shared the same opinion. Our only downfall from this? Bandwidth. There is obviously more mark-up required to render a table, but it really isn't that much. This is the trade-off that has so far not been a problem.