I strongly agree. CSS is rife with extrinsic complexity—complexity greater than the problem domain required. As often happens with such designs, its pieces don't line up and many simple questions have complicated (or no) answers. It's by far the weakest element of the web stack. I often find myself just writing Javascript to adjust layout instead of bothering to learn the CSS for it.
Edit: CSS also seems to me the least webby element of the web stack, in the way that Adam Bosworth brilliantly described the web:
That software which is flexible, simple, sloppy, tolerant, and altogether forgiving of human foibles and weaknesses turns out to be actually the most steel-cored, able to survive and grow, while that software which is demanding, abstract, rich but systematized, turns out to collapse in on itself in a slow and grim implosion. [1]
HTML and Javascript, for all their messiness, have the former quality, while CSS is a case of the latter.
I'm likely a textbook CSS "hater" according to wisty's post in this thread.
But I don't hate CSS because I don't believe it is powerful, rather because the amount of concepts and context-specific modalities you have to understand to do things that would be trivial with any other layout framework (like vertically center one thing in another thing) is absolutely bonkers.
CSS gurus will often knee-jerk defend it from people who say things like that, but objective third-parties need only read through CSS questions on a site like stackoverflow to see a mountain of questions where someone is trying to accomplish something that is conceptually quite simple and they are faced with page after page of jsfiddle "answer" links that don't actually even fix the problem they were having because their layout implementation was using a different display model on the divs in question (or whatever other random context-specific thing that makes the actual solution non-universal).
Being powerful is nice, and CSS is powerful, but there's something to be said about keeping the simple things simple and CSS fails massively on that.
Edit: CSS also seems to me the least webby element of the web stack, in the way that Adam Bosworth brilliantly described the web:
That software which is flexible, simple, sloppy, tolerant, and altogether forgiving of human foibles and weaknesses turns out to be actually the most steel-cored, able to survive and grow, while that software which is demanding, abstract, rich but systematized, turns out to collapse in on itself in a slow and grim implosion. [1]
HTML and Javascript, for all their messiness, have the former quality, while CSS is a case of the latter.
[1] http://adambosworth.net/2004/11/18/iscoc04-talk/ - one of the most insightful things I've read about the web and about software in general.