Agreed. TurboLinks itself seems unnecessarily heavy. So you avoid a full page reload, but you do still have to fetch the whole page over the network and render it. Just without the browser loading icon spinning.
Well, you can use data-turbolinks-permanent to prevent turbolinks from trashing a dom subtree, so that lightens it up a bit. Its also often paired with caching so that big chunks of the page are pulled from the cache so you can often do a sub 300ms refresh of the page with turbolinks while working well on slow mobile connections that choke on large js bundles.
It is complex in its own way though, so there's no free lunch here.
It is complex in its own way though, so there's no free lunch here.