I'm sick of seeing "let's throw a dozen classes at every element" being favored over combinators. It is by no means efficient and the people who say "we already have the class selector" need a quadruple helping of sierra tango foxtrot uniform.
It's one of the biggest parts of why HTML/CSS frameworks are a monument to ignorance, incompetence and ineptitude, as they rely on slopping classes into the markup to say what things look like, instead of using semantic markup and classes/ID's to say what things ARE.
What things look like is NONE of HTML's flipping business, and if you're going to use classes like "text-shadow centered x-s-4 x-m-6" you may as well go back to using HTML 3.2 with all the FONT, CENTER, and tables for layout everyone so clearly seems to miss.
But what can one expect when most older dev's never extracted their craniums from 1997's rectum and spent a decade and a half vomiting up HTML 3.2 with 4 tranny atop it, and today just wrap 5's lip-service doctype around the same outdated, outmoded, worst of the browser-wars era practices.
Even worse when they say it’s so they DRY in their CSS, as they RY all over their blasted markup pissing on caching models. Hence why so many developers are slopping out 100k of HTML to do 16k's job, 500k of CSS to do 32k's job, and 2 megabytes of scripting to do single digit to no scripting at all's job; then having the unmitigated gall to call such bloated incompetent trash "easier".