Note: The following statements are for sake of argument and I realize that they are likely not practical.
I think is a result of the fact that styling is outside the domain of front-end software engineering. I don't mean this literally; clearly it is part of the job description. What I mean is that as a software engineer my primary skillset is in programming and CSS generally has very little to do with programming.
This is true semantically (CSS lacks good support for variables, functions, conditionals, etc.). However, it is also true in terms of of how designs are generally structured. For example, layout tends to be "I want exactly this spacing at this breakpoint and this spacing at this other breakpoint" instead of "I want the spacing to scale according to this equation of screen size".