It sounds like you're on the right track -- particularly when it comes to the mental-huffing-midgetry of idiotic garbage frameworks dragging practices back to the worst of mid to late '90's HTML 3.2 / 4 Tranny. BUT your lack of understanding HTML semantics and the reasoning for the separation of concerns is hobbling you.
Take that "repurposed" MALARKEY in regards to bold and italic. That's NOT what happened, they were RESTORED to their original PRE HTML 3.2 roles of being for when for grammatical or structural rules text WOULD be bold or italic in a professionally written document when not recieving emphasis or "more emphasis" (EM and STRONG respectively). They have a meaning separate from their default appearance. B, I, EM, STRONG, and CITE all have different grammatical / structural MEANINGS, entirely separate from their appearance, and that's how/why they exist as tags LONG before people started pissing on the markup with presentational crap that NEVER should have existed in the first place like tables for layout, the font/center tags, or all those presentational attributes.
HTML was created from day one to say what things ARE, structurally, grammatically, and for competent writing reasons. That way the user-agent could best convey that meaning within the lmitations of the device or user. The UA (a browser is a UA but a UA isn't always a browser) doesn't have to show the text as bold or italic, it just has to convey that the text is different for a grammatical reason. Such as a book title that's not being cited, an entity or party in a legal document, etc. That VIC=20 Linus Torvalds cut his teeth on or the TRS-80 model 4P I was lugging around, or the daisy-wheel driven teletype terminals still in use as late as the early '90's couldn't show bold or italic text, that didn't mean the content generated in HTML 2 wasn't for us too!
Not at all like today where everyone is using the exact same size screen at the exact same resolution at the exact same PPI, with nobody using screen readers, braille readers, TTY, and our ability to tell search engines we don't give a shit about them. In case you missed it, this paragraph is sardonic wit.
This goes for most any of the tags you use. If you choose them for their default appareance and not what they mean, you're using all the wrong tags for all the wrong reasons. This too should extend to classes since saying what you want things to look like in HTML isn't just bad practice, it defeats the entire point of both HTML and CSS!
Particularly since presentational bloat in the markup pisses on the whole concept of media targets, caching models, and a host of other bits of efficiency and ease of development.
Sadly too few people grasp much less embrace these concepts, and that's where ignorant incompetent inept steaming piles of manure like bootcrap and failwind come into the mix.
The real problem -- where things truly are rotten -- has nothing to do with HTML's age. The problem is that the actual specification is a painfully bloated legalese intended not for the people who write websites, but those who write browsers. This is why inaccurate web rot deceptive and duplicitous trash like W3Schools continues to sucker nube after nube with practices that shoves everyone's cranium up 1997's rectum. It's why we have to go to MDN to learn anything even remotely proper about HTML or CSS... If age is an issue at all, it's becasue of the fact most people are stuck in the worst of the HTML 3.2 mindset, recreating everything we've been told in the 23 years since HTML 4 dropped not to do. Moronic trash like class="text-center box-shadow background-500-grey" being a monument to the WORST of browser-wars era coding and undoing over two decades of genuine progress.
As I've said many the time, such idiocy being PROOF the people who make these "frameworks" aren't qualified to write a single damned line of HTML, much less have the unmitigated gall to tell others how to do so. Drooling moron scam artists like Wathan, Otto, and Thornton having done more damage to the web than the worst virus writers or crackers.
That's why people now think a home page of 4k of plaintext and a half dozen content media now needs 100k of markup, 500k of CSS, and 2 megabytes of JAvaScript in 50 separate files to do what I would code as 10k of HTML, 48k or less CSS, 48k or less JavaScript IF ANY, in three to four files. It'w why the results of people blindly copying the halfwit rubbish examples from these dipshit frameworks end up with websites in court for accessibility failings... all whist crying "but everyone is using these" as if that justifies the lazy, sleazeball, inefficient, broken practices that tell large swaths of users to go plow themselves.
IF there's unnecessary complexity, it's from know-nothings randomly making shit up, ignoring specifications and guidelines, adopting the latest hotness without a proper understanding of the underlying languages, and never once being taught what HTML and CSS are actually for, much less why they are separate.
But no, we can't actually say things like that, it might upset someone.