Static Sites Are Not So Static
To start, a static site can be a single page application as long as the body content of each page is available from the server along with the full html page. If this is the case then client side JS can be used to load in only the body content of new pages after the initial page load.
Static sites can also be progressive web apps and can be available offline. Nothing about PWA's prevents a static site from utilizing these features. In fact limiting tight server side coupling makes these features even easier.
Pre-rendering HTML content with build hooks provides the best possible performance, neither slowing down page load time or slowing down the page after it has been loaded with costly templating libraries and frameworks. All of this is possible without losing the possibility of dynamic, feature rich applications that we have all grown to expect out of the web.
With these principles in mind I have begun working on OrisonJS. A static site generator that will come with all of these modern web platform principles in mind. I already have some documentation on the site - but stay tuned as the features are rapidly evolving towards an initial release.