Ничего не изменилось: вы по-прежнему
можете изменять стили напрямую у элемента.
при обращении к элементу в JS и изменении стилей методом style DOM дерево
Не скажу как раньше было, но и сейчас при неудачной вёрстке можно вызвать reflow для всего документа даже при применении класса. Изменение шрифта и так и так заставит браузер что-то пересчитать.
Другое дело, что сейчас есть техники позволяющие минимизировать вычисления: сказать браузеру, что пересчитывать нужно только определённую часть (утрирую).
Есть tailwindcss с новым (по отношению к 2015 году) подходом - чтобы поменять 1-2 стиля нужно добавить/удалить 1-2 класса. Часто это удобнее.
Используя классы вместо style код становится понятнее, легче поменять значения для повторяющихся стилей, следовательно меньше багов.
Впрочем, от style всё равно не уйти полностью. Например, динамически высчитываемые анимации - только class не обойтись.