I’m a big fan of code separation and the MVC pattern. As we slowly move towards a world where everything is a web app, I think forcing the model of MVC on most frameworks has been the greatest move towards clean code that we’ll see for a while.
Looking at HTML this way allows us to not feel guilty about non-semantic divs, and not knowing the right microformat for calendar events.
What we do need to make sure of is that our new html pages don’t lock up data, that there is an API for everything, and that it is publically accessible. After all, people only are scraping your HTML for information if it’s not available in a better form.