В CSS есть понятие специфичности:
1.Специфичность id
2.Специфичность class
3.Специфичность tag
Применяя tag вы будете использовать наименьшую специфичность,
применяя id - наивысшую специфичность. (Более подробно можно прочитать в книге "CSS для Профи").
Поэтому применяя классы вы не будете перевешивать специфичность id, которые в свою очередь обычно применяются для работы с сценариями JS.
А используя только специфичность tag вам нужно будет применять большое количество вложений этих тегов, а программисты народ ленивый, поэтому они используют классы, как самый оптимальный вариант.
А чтобы как-то договориться о стандартах, применяют одну из методологий, например БЭМ от Яндекса (у вас может быть своя, если вы считаете что у вас она лучше).