Hi @leeself and welcome to the forum,
The docs highlight possible navigation techniques but they’re not exhaustive. Another technique would be to outsource navigation to a separate module whose job it would be to handle all things related to navigation. This method is very well presented in the talkpython anvil course and worth a watch.
If you do have a bunch of server calls on those forms then avoiding loading each form at startup is a good idea.
But you might also want to cache those forms. This way you get super snappy page transitions which users will appreciate. And the benefits mentioned from @p.colbert
If data changes between page clicks then silent server calls in the form show events are often a good way to keep the page up to date. It may also be that you can be cleverer if you know an action somewhere should trigger an update of data on another page.
You can look in the cache. Check if that form exists and then update its data.
You also might want to check out the HashRouting dependency if you’re thinking about navigation.
It caches the form so that the same form instance loads each time and that instance is only loaded upon navigation to the page (not at start up).