добиться изоморфности на нем можно только через PhantomJS.
Не только, если вы погуглите, там было масса попыток прикрутить virtualdom и т.д. но все это кастыли.
они пихают контроллеры и модели прямо во вьюхи
Там как бы... нет ни моделей ни контроллеров. Компоненты реакта это чисто view. Данные должны приходить туда извне.
А если вы один их тех, кого сильно смущает наличие HTML в JS файле - ну... попробуйте как-то успокоиться и понять что важно, что есть разделение на шаблоны и логику, а то что все в одном файле - это детали. Лично
я так и в Angular делаю и мне это кажется весьма удобным.
это 500 кб кода + JQuery
jQuery вам зачем? Там же virtual dom, jquery вообще не нужен. Ради HTTP? есть отдельные библиотечки. Опять же вы можете компоненты ангуляра второго использовать.
На Angular 2 не смотрел, просто не успел, но слышал, что он тоже может server-render.
Да может, более того проще чем с React (ну как минимум за счет того что все готово и заточено под инфраструктуру ангуляра, а реакт все готовят как хотят).
еще смотрел Ember, но он мне кажется тем же Angular 1.x
Ember пожалуй лучший из этой тройки, но вокруг него мало шумихи... а стало быть и комьюнити меньше, зато у них вообще нет никаких проблем с процессами и инфраструктурой.