インライン展開は抜きにしても、
「gのinternal defineの定義はfの実行時に毎回行われますよね」
と書いている時点でclosureというものを激しく誤解している予感。

最も単純な(最適化しない)実装でも、closure g作成のコストは
f実行一回あたりcons一個分。