Я наверно фанат Redux и не понимаю этого. Как по мне, он в Redux первую очередь заставляет выделить в приложении какой-то слой общей логики и данных, которые шарятся между компонентами. Вот когда начинают совать в редакс UI стейт отдельных компонентов — начинается ад, да.
Синхронизация интерфейса и модели это лишь небольшая часть айсберга. Концепция компонентов во всех фреймворках дает легкое повтороное использование и инкапсуляцию данных, стилей, разметки. Фреймворки управления состоянием дают возможность связывать разные компоненты между собой и легко тестировать поведение (ну, если уметь их готовить). Плюс, имеются разного рода плюшки типа роутеров и депенденси инжекшена (в ангуляре, например).
А наверно самое главное, что дают фремворки — это то, что на vanilla js можно писать без всякого представления об архитектуре, а с фреймворком так не получится. Придется потрудиться, чтобы сделать все в соответствии с тем, как это принято в конкретном фреймворке, но зато результат будет гарантированно лучше.
Есть еще прекрасные способы включения режимов диагностики в авто — открыть водительскую дверь, 7 раз включить зажигание и перевести селектор коробки в N. И надо считать сколько раз мигнет какой-нибудь огонек на приборке
А наверно самое главное, что дают фремворки — это то, что на vanilla js можно писать без всякого представления об архитектуре, а с фреймворком так не получится. Придется потрудиться, чтобы сделать все в соответствии с тем, как это принято в конкретном фреймворке, но зато результат будет гарантированно лучше.