Есть ли какая то концепция именования блоков НЕ по смыслу в html?
Например у мня есть блок преимущества.
Я могу его назвать features__wrapper
Но так же я могу просто назвать его grid-4.mb-2 и тд
то есть указывать не на принадлежность блока к какому то виду (преимущества, блок о нас итд) а именовать именно по его виду.
Можно ли где то об этом почитать и правильно ли так делать?
А ещё можете даже так class="features__wrapper grid-4 mb-2"
Да я могу, но тогда это делает блок уникальным что выделяется из концепции.
Вообще яэтот вопрос задал, поому что обычно крупные проекты используют именно утилитарный подход, значит ли это что он так хорош?
Это утилитарный подход (так называемый атомарный css): один класс - (преимущественно) одно стилевое правило. Читайте документацию utility-first фреймворков. Самый крупный игрок в этой области - Tailwind CSS. Также в Bootstrap 5 появилась возможность использовать (в том числе задавать свои) классы-утилиты.