I think it was inevitable. Most of the funded content on the web is marketing/sales-driven, and companies paying for marketing content want it to be displayed in a specific way.

It’d be interesting to have a parallel DocBook web for technical content, where consumers of that content could apply their own styles to render it in a way that’s best for them.

I mean, you can just remove all the user agent styles and then <button> is just as stylable as <div>.

Why would marketing want to pay for the extra (and to their mind entirely pointless) work required to capture semantics?

(I’m not saying I like the world we live in, but I don’t see a likely alternative.)

Because not everyone has useful eyeballs. Some people are blind. The amount of extra work you have to do to make a div faithfully act like a button is far more than simply resetting some styles.

It seems evident to me that semantics are more challenging to define than visuals; it's not the CSS that's the problem.

It's more challenging to encourage correct implementation of semantics than implemention of visuals; which is a great reason for using the element that was designed for this use case.

I've literally never had a marketing person tell me whether I should use a <button> or <div>. Let's not pretend things like using the wrong semantic elements is anyone else's fault but lazy or inexperienced developers.

These days it's a moot point anyway, because everyone is using things like tailwind which provide a full reset for things like default buttons, so there really is no excuse.