4.) That's one of the big ones. Also, adding new CSS rules to the page is really slow because it forces a reflow. Basically anything that forces a reflow and makes the browser repaint the whole page will be slow.
5.) IE6-8 has a limit of 4095 CSS selectors in a single stylesheet (it's good to know that limit, because additional CSS rules are simply dropped silently). It's not terribly hard for a relatively complex webapp to hit that limit. The solution is simply to break the CSS up into multiple <style> tags (or stylesheets, if you're using external CSS). The hard part in this question is understanding what the problem is, not how to fix it - many frontend devs aren't familiar with arbitrary browser limitations.
(This question came out of an actual problem that Google+ faced about a week after launch.)
6) Also li, dl, dt, tr, td, th, etc. The specific ones don't matter so much as understanding that you go to the spec to figure it out, not to w3schools. Also, the official spec is at WhatWG.com, not at the W3C site.
8) Oh, I was talking about tracking it yourself on the server (for logging/algorithmic purposes), not about displaying it to the user. Anyway, for user display there's the :visited pseudo-class. For logging, there're a bunch of alternatives like going through a redirector or adding some JS that makes an XHR or image request, but the HTML5 solution is <a ping="...">, which unfortunately is still buggy in most browsers.