さっきの問題を調べ直した。
どうやら、二回目以降のeval/memlimitでは、dynamic-windのbefore thunk内の(gc)では、まだメモリが解決されないが、実際のeval/svに突入した段階で(gc)すると、メモリ使用量が確かに回復するようだ。
おそらく、副作用(current-runup-size回り?)を追加した為、何らかのレキシカルな環境をdynamic-windの外にまでつかんでしまっていて、それが原因で、二回目の突入に入るまでは(gc)が機能しないのだと思う。
これは、ただ単に、start-sizeを取得するのをlazyにするだけでいける気がするので、あとでそういう風に直してみる。