Great article!!!
Also, it's worth to say that NextJs has an advance feature, called "Dynamic Imports" that works properly with SSR for lazy loading components (like the React Lazy feature). You can use this for lazy load non critical view components, that way you the page will load and show your critical/not-lazy components with all the advantages of SRR, and then asynchronously load all the lazy components.
An other use case where you can apply the third solution, is when you have several tabs, and in each tab you have form fields, and you need to get the value of all the fields of the tabs in a certain moment to make a POST request with that data.