After hand-crafting CSS with semantic markup for years, using the techniques suggested here, I've started liberally sprinkling Bootstrap classes in my markup. It's not clear to me that it's any less maintainable than the alternative.
My primary way of achieving reuse, as a developer, is through templating and partials and helpers; they're what I use to avoid runaway repetition of styles, which means that redundant Bootstrap class usage isn't often a pain point. But keeping classes inline does make it easier for me to debug layout problems at a glance, where relationships between elements are clear. Those classes might not have semantic value to the consumer of the page, but they certainly have semantic value to me. And most of the time, I care more.
Large CSS files, even semantic ones, are difficult to maintain, and often give you little feedback on the meaningful relationships that elements have with each other. Pure semantic markup is a myth: web pages are structured documents, and that structure has an impact on style, which is constrained by the limited descriptive power of CSS itself.
I'm in the same camp. I know everyone is gung-ho on separation of the presentation layer, but I believe styles are far too intertwined into the presentation for semantic markup to be beneficial at a large scale. My primary concerns with semantic markup is that there's no quick way in your developer tools / inspector to lookup correlated rules in your LESS/SASS files and have them make sense (i.e. how many columns is this and how does it handle responsively?). As @bguthrie said, there's little you can deduce regarding relationships between the CSS file and the HTML markup. For this reason I stick with classes, as it's far easier to tell how my layout/grid is structured by simply viewing the source. I'm sure many will opinionatedly differ, but it's worked just fine for me for a decade and I find it easier to maintain and for other's to understand the structure on first glance of the HTML.
I recently started using source maps, which basically allow you to inspect the underlying less (I dunno about sass...). That might not totally fix your issues with inspecting correlated rules, or maybe you've already tried it, but I've been finding it helpful.
I spend about half my time cranking out responsive PSD->CMS themes, and I feel the same way. I use a lot of template parts/helpers, and generally it's not a pain point to reproduce classes across a document. Except where it is and then, well, there I extend a class.
Simply having some kind of standard to work against is a big step up for me across projects. There is a great deal of semantic information involved in the in-line class names of a framework, once I learned them. Having verbose classes is maybe not quite a domain specific language, but it is a move in that direction.
Any time you've chosen to select a language for describing what is going on, you're locked into that decision. I just like having a largish dictionary that other people know, and I don't mind being a little more explicit in the markup if it lowers the number of unique or idiosyncratic words I need to develop for myself.
Yeah, +1 for SUIT CSS. Modularity is clutch, particularly on larger projects that get tossed around a lot. I'm not completely sold on OOCSS, but MapBox's style guide is making a believer out of me (https://www.mapbox.com/base/). Minus the unsemantic grid, of course...
My primary way of achieving reuse, as a developer, is through templating and partials and helpers; they're what I use to avoid runaway repetition of styles, which means that redundant Bootstrap class usage isn't often a pain point. But keeping classes inline does make it easier for me to debug layout problems at a glance, where relationships between elements are clear. Those classes might not have semantic value to the consumer of the page, but they certainly have semantic value to me. And most of the time, I care more.
Large CSS files, even semantic ones, are difficult to maintain, and often give you little feedback on the meaningful relationships that elements have with each other. Pure semantic markup is a myth: web pages are structured documents, and that structure has an impact on style, which is constrained by the limited descriptive power of CSS itself.