After learning the basics of CSS, you start using it on your website and realize it can get messy very quickly. Everything is on the global scope and you must keep you're variables readable. At some point, you start mixing up the names or create selectors that do the same thing as you had on a previous page.
Why have guidelines? Fiona Chan at Web Directions South explains the problem of Spaghetti Code in CSS in the video below.