You might argue that the HTML 5 Boilerplate[1] is a good starting place for learning about best practices. The code & accompanying site contain a lot of comments that explain why things are the way they are.
Problem is, of course, that the technologies used by a common page nowadays go far beyond the stuff present in H5B.