Путаницы нет, проблем в том что в ряде случаев клиенты стали настолько толстыми, что на клиент фактически выкачивается вся бд, потом по хитрой логике она синхронизируется. Как итог при сложных расчетах это все еле шевелится на клиенте, потому что на клиенте не выйдет купить еще плашку с озу либо добавить стойку. Поэтому и пошел тренд на тонкие клиенты. Spa может быть как толстым, когда выкачивается все с сервера, все это может работать оффлайн, когда есть интернет синхронизуется, так и тонким, когда просто получаются данные и отображаются, а за все что сложнее 2+2 отвечает сервер. Но большое приложение никак не выйдет сделать толстым spa, толстым можно сделать приложение на electron.
Клиент может иметь логику в рамках своей интерактивности, то есть если добавляются товары в корзину, то нет смысла делать отдельный запрос и считать сумму на сервере(при условии что например нет скидки которая зависит от всей истории заказов пользователя за последние годы и нет задачи обеспечить согласованность на всех устройсвах где залогинен польователь и мог паралельно сделать заказы и т.п.). Но за генерацию инвойса с итоговой суммой может отвечать только бакэнд.