◆ 前ページの情報を保持できるんだし そのまま使いまわしたほうが効率良さそう
◆ やり始めると複雑になるし サーバで HTML 作る場合と同じように毎回新規取得で良い気もする

これまではクライアント側に最初からすべてのデータをもたせてしまうようなものばかりであまり気にしてなかったのですが ページの種類が増えて 最初からすべてのデータをもたせるのは辛いものになると ページコンポーネントがそのページで必要なデータを API から fetch することになると思います
ですが あちこちのページでよく使うデータもあって そのページ用にデータを取得というのをページごとに毎回するのはムダが多いような気がしました

例を出すと ログインが必要なページのログイン中ユーザ情報とか アプリケーション中でグローバルな設定項目とかです
具体的なものとして このブログを SPA 化するとして考えてみます
ブログだと誰でも見えるのでユーザはないですが サイドバーに出てる情報は可変なもので ページ間で共通です
タグクラウドやカテゴリ一覧や新着記事などを次の記事に進むたびに取得するべきでしょうか?

初回のみ取得で リロードするまで変わらないでもいい気がします
今のようなページごとにサーバから HTML を受け取るものだと毎回取得してるわけですが せっかく SPA なのに本文情報以外のサイドバーのデータまですべて取得してから表示とすると少し遅く感じると思います

ずっと更新されないのは困るにしても 数分ごとやページ切替時にバックグラウンドで取得とチェックをして 変更があったらそこだけを更新するので十分な気もします
ユーザ操作と異なるタイミングで更新されるとクリックの瞬間に変わったとかありそうですが そこは変更箇所を一瞬真っ白にして 変更後は 1 秒ほどクリックイベントを無効にするとかで そこを見てるなら変更があったことを知らせることは十分できそうです

ただ そういう他のページとデータを共有することを考え始めると 一覧のページャを使う画面だと前後 2 ページ分くらいは自動でバックグラウンドで取得しておいて ページ移動しても 10 ページ分くらいはキャッシュしておいて期限切れない限りリクエストしないようにすれば とか色々考えてしまっては複雑になっていくんですよね

もともと速さを求めて SPA にしてるというよりも サーバでレンダリングするよりクライアントでレンダリングして サーバは API で JSON を返すだけにしたほうが楽だから SPA してるようなものなので 余計なことをせずにサーバサイドで HTML を作るときと同じ用にページごとに毎回必要なデータを取得してから表示でいい気もします