Mu. Semantic purposes require semantic markup, appearance purposes require appearance markup, and - this is critical - if you want appearance to be contingent on semantic structure, there needs to be a way to map the two to each other, contingently.
But CSS will always be hamstrung by HTML's toxic content/appearance paradigm.
Want an example? Go scroll back in my timeline just a few days to my recent CSS question and the kludge I found to answer it. Don't get me wrong, I'm delighted there's any solution at all, which prior the viewport functionality, there wasn't. But my rage is unending that I am only managing to achieve a semantic purpose by expressing myself in quantities of pixels. This is Wrong, and gods will punish our whole civilization for our sinful ways.