3. Find all the cruft, define all the unused dynamically generated wrappers and change the style definitions accordingly (ie: ul#menu li, suddenly becomes #nav .item-list ul li). Try to remove/reorder as much as possible with theme functions.
Esp 3 is a HUGE jub. And I find myself very often changing the complete source of my initial design because I found that Drupal outputs its DOM in such a way, that it breaks my initial design. And that theme fnuctions are going to be so complex (including pregging) that Its better to rethink the initial ideas.
I think Ber hit the nail on the head for this one. This is the most tedious and intimidating part. At one point there was a proposal to document what ids/classes Drupal uses. This would have helped standardize this area, but the problem would not have gone away completely. Part of it is the nature of the beast (every designer uses his own names, and Drupal has its own). I think this would make a very good discussion for the themes mailing list.