Most SPAs seem to only serve one or two ‘soft’ navigations after the initial ‘hard’ navigation (the one that loads the entire app upfront), meaning the cost is not being amortized across many requests, negating the whole point of the architecture.