I have trouble explaining to people who are new to CSS how the cascade works when using stylesheets. For whatever reason, newbies seem to naturally start out by just adding a class to every element. Take the code snippet from this question, for instance (no offense to the OP, overtherainbow).
Doing this: ul#nav { }
and ul#nav li { }
Is better than: ul.nav { }
and li.navLinks { }
That is a very basic example, but you get the point. Using inheritance in this case is clearly beneficial.
I have tried to use semantics as a reference point, but that has not proven to be effective. It is quite possible that the term "class" is intruiging/confusing due to prior knowledge of OOP. Eventually, after seeing good example after good example, they always have the breakthrough moment where they finally "get it". But, I am looking for a way to streamline this process, because I don't want to be the guy who has to go back and maintain this classitis by-product that slips into production.
I particularly enjoyed this answer that explains recursion. I had a similiar explanation when I was in school, and I "got it" immediately. I am hoping that somebody brilliant out there has a similiar way of explaining the cascade succintly but thoroughly.