SPA になってないけど ページのロードじゃなくて SPA みたいな遷移したいとき
行き先の HTML を fetch して document.write で全書き換えすれば行けるんじゃないかなって思った

条件として customElements.define だったり setInterval だったりグローバルに影響することはいっさいしないこと
古い DOM が消えて GC されれば完全に消えるような作りが必要

URL は history.push で書き換えて back したときに元の URL の HTML を再 fetch して document.write する
メモリ的に余裕あれば捨てないでおいて back のときにもとに戻せば bfcache (ページバックで戻ったときに JavaScript で処理したものも残ってる) になっていい感じ?

暇な時に試してみよう