In practice though, I've seen this backfire. You end up with the frontend team blocked because the API they need isn't available yet, and then the backend team gets blocked because they shipped the API but they can't use it to deliver value because the frontend team don't have the capacity to build the interface for it!
My preference is to work on mixed-skll teams that can ship a feature independently of any other team. I really like the way Basecamp describe this in their handbook: https://github.com/basecamp/handbook/blob/master/how-we-work... - "In self-sufficient, independent teams".
They generally should all be in the same team, but that often doesn’t scale.
Not having them in the same team pretty much never works well though either.
I don't know much about front-end development but I imagine you can create a front-end that is both not an SPA, and not server-rendered.
[1]: https://world.hey.com/dhh/the-one-person-framework-711e6318