Par offline j'entend l'utilisation d'un fichier manifest (d'ont je viens de voir sur mdn que l'utilisation est devenue obsolète :/).
Contrairement au Ctrl-S, les pages restent dans le navigateur se qui a de nombreux avantage.
Avec l'utilisation de manifest dynamique (pas spécialement simple a mètre en place) on peut forcer la régénération des pages en caches a partir du serveur et/ou préparer une utilisation (d'une partie) d'un site en offline, par contre une fois en offline, sois on se contente d'une navigation entre les pages en caches, soit on switch vers une navigation en JS (voir un mixe des deux), il est évident que sans connexion aux serveur les pages ne peuvent plus être charger depuis celui-ci.
Ce cas d'utilisation peut paraitre assez spécifique, mais il répond parfaitement a certain besoin.
Aussi générer complètement une pages coté serveur n'empêche pas que la suite de la navigation sois uniquement géré en JS (sans pour autant dupliquer de la logique), après tous dépend de se que l'on dev comme application.
C'est d'ailleurs comme sa que l'on fonctionnais à la base en faisant de l'Ajax, le serveur génère une page, la page évolues grâce aux JS (en proposant éventuellement une mini-navigation via des "sous-vue"), mais des qu'on passe à une autre fonctionnalité du site, le serveur génère une autre page avec un contexte js différent.