While much of the time, CSS does what it is supposed to, common web layouts (2 column layouts, for instance) are a nuisance in CSS, and require several layers of complicated container tags to make work correctly. There goes your easily upgradable code.
After reading this list, I’m tempted to add #16 : “Use Tables!”
15 CSS Habits to Develop for Frustration-Free Coding – Noupe.