Когда в проекте появляется слишком много таблиц, мы не можем быть уверены, что одним махом исправим их все, сложно написать код который работает сразу со всеми таблицами.
И когда тебе в случае ошибки в логике работы со всей базой в целом нужно править не только API но и фронтенд твой - верстки, выводы элементов и так далее - становится очень печально и желание работать пропадает.
Используя фронтфреймворк мы конечно наносим удар по SEO нашего сайта, но зато мы можем делать только API, а разработку внешней части поручить например другому человеку.
Конечно это напряжет сервер большим количеством запросов в секунду, чтобы обновлять и синхронизировать данные, изменится подход к работе тоже. Но в случае с версткой больше нагрузка идет на канал интернет-соединения - передавая туда сюда 100 килобайтов верстки постоянно для каждой страницы заново.
С фронт приложением ты отдал их 1 раз, а потом работаешь с данными, фронт строит по данным дальше верстку из кусков на стороне клиента, не затрачивая память и процессор сервера. Работает внешне намного быстрее, создается ощущение что сайт мгновенно обменивается данными и весь такой быстрый быстрый.
Но главное не внешка, главное это то что тебе не нужно печалиться о изменении еще и внешней части сайта, когда у тебя сломалась работа с базой. Ты делаешь апи, и не беспокоишься об отрисовке, что уменьшает число проблем, которые тебе нужно держать в голове
Это не "лучше", это "иначе".