I’m a long-time https://getbem.com/introduction/ user. The double underscore creeps into my code even when selector collision isn’t an issue.
It’s the fact that a methodology, any methodology, adds structure and semantics to HTML class naming where inherently there isn’t one.
Historically, when people have talked about targeting elements by their attributes, it’s been in the context of neat tricks or one liners.
I’m reminded of https://testing-library.com/docs/queries/bytestid/ to only ever reach for the testId element selector when you’ve ruled out all other, more semantic querying options.