Ainda acho que SSR tradicional faz muito sentido. Aliás, faz mais sentido na maioria dos casos.
Com ele, o desenvolvimento é mais ágil: um repo, um build, um deploy. Menos npm e menos dependência de terceiros = menor superfície de ataque e menos CVEs.
A equipe pode ser menor e mais generalista, o que reduz custo e complexidade.
Em performance, SSR aguenta bem com cache, CDN e otimização de banco.
E se o projeto crescer a ponto de precisar de recursos mais avançados (tempo real, offline, UI pesada), é porque ele já dá retorno financeiro e pode bancar uma equipe mais especializada.
Outro ponto que já sofri inúmeras vezes com SPAs, é a regra de negócio ser espalhada pelo front e no back. Um SSR tradicional pode evita duplicar regras em dois lugares diferentes.
SPA faz mais sentido (para mim) quando há interação tipo editores complexos, colaboração em tempo real, ou uso offline.
Pra maioria dos sistemas, SSR já entrega uma UX muito boa. E convenhamos, 95% dos sistemas desenvolvidos no mundo são de pequeno a médio porte e que foram criado por 4, 3 ou até 1 dev.
E hoje em dia, os frameworks já estão bem maduros e trazendo soluções robustas para sanar os gaps dos SSRs. Trabalho com o Laravel e em conjunto com Livewire, Alpine, Inertia ou HTMX e tá sensacional.