Потому что в таком случае перебить эти стили очень проблематично, они имеют практически максимальный приоритет. Да и собственно нечем их будет перебивать.
Второй случай, часто используется изменение стиля за счет изменения класса. Например, неактивный и активный элементы могут иметь разные стили. Конечно, в том же JS можно вместо подмены класса использовать style, но это полная хрень.
Помимо этого, невозможно через style добавить свойства псевдоклассам. Как ты будешь менять состояние input, если не имеешь доступа к focus и blur?
Еще CSS-анимации невозможно реализовать без выделенного файла стилей. Не считаем блок style, ибо это технически все тот же файл стилей.
Аналогично с медиазапросами... а сайт без медиазапросов в современном вебе - это зашквар.
Удобнее так делать лишь в редких случаях и когда весь код - это пара-другая уникальных тегов без повторений. Когда один лишь html у тебя состоит из нескольких тысяч строк, где теги имеют часто одни и те же классы, удобство сразу исчезает.