I think it has a lot more to do with memorization of all the little quirks on what works on what browser and what doesn't.
With languages like C#/Ruby/PHP/JavaScript, I find that I can soak up that knowledge better than HTML/CSS, because I find it consistent and organized (...not too sure about PHP's quirky API naming conventions). For CSS, it just seems like there is a myriad of tricks you gain through out the years, and I guess it just takes more effort to get good at it.
Exactly. Programming is logical. Styling isn't. Knowing that `margin: 0 auto;` centers elements in CSS isn't a left-brain, right-brain thing. It's just something unintuitive that you accept until you stumble upon the New Way of doing it.
I've noticed usually the better someone can draw on paper, their web design reflects the same.