теряем возможность работы с куки и сессиями
Ну не совсем, с куками вы все так же можете работать и через куки хранить сессии, другое дело что это в 99% не нужно. А токены - JWT решает все проблемы.
не очень удобно и не привычно работать с JS MVC
Привыкните, учитывая то что JS MVC это то, чем должно быть MVC.
сео оптимизация
Тут есть варианты:
- гугловский краулер поддерживает JS нынче, на счет остальные не вкурсе.
- генерация снапшетов (phantomjs например) и Ajax crawling
- server-side рендринг, актуально при втором пункте.
везде нужно тягать токен туда сюда
Большая часть фреймворков делают это прозрачно для разработчика, так что это то же самое что туда-сюда тягать куки.
и к нему можем написать клиент на любом php фраэмворке в классическом виде
Почитайте про гексагональную архитектуру, например. HTTP API и классический WEB UI это лишь два интерфейса к одной и той же логике, которая инкапсулирована в сервисы. Разница лишь в том, как DTO из сервисного слоя будет юзаться для формирования представления (будь то json или html).
https://www.youtube.com/watch?v=ajhqScWECMo - вот вам посмотреть на досуге.