Wie kriege ich das trotzdem?
Geschwindigkeit
Für MPAs gibt es kleine JavaScript-Libraries, die genau wie SPAs nur den relevanten Teil des DOMs austauschen. Wir fragen zwar das ganze HTML an, nehmen aber nur einen Teil davon raus und ersetzen den alten Teil des DOMs mit dem neuen. Der Browser muss damit nicht jedes mal die ganze Seite neu aufbauen. Die Navigation, Header, Footer, CSS und Javascript sind schon geparsed und gerendert. Bildlich passiert folgendes:
Nur der rot markierte Teil wird ersetzt. Für diese simple Aktion muss der Browser kein JSX interpretieren. Ich muss keinen Router installieren um die URL korrekt abzubilden.
Caching
Caching ist ein integrierter Bestandteil von HTTP. Natürlich können auch MPAs Caching verwenden.
Offlinefähigkeit
Es spricht nichts dagegen, auch mit MPAs komplette Progressive Web Apps zu bauen. Service-Worker funktionieren bei beiden Ansätzen.