>>326
>なんて時は(a func)の返り値は実行時にコンパイルするんでしょうか?
んなわけない。グローバル最適化とか考える以前にクロージャを含む言語の
コンパイルについて勉強すべし。

>手続きを束縛するシンボルを破壊的に操作することって
>ほぼない上に最適化の邪魔になるからとても嫌なんですが。
目的による。Lisp系言語の場合、インタラクティブな開発時には
ひとつの関数定義を修正してリロードして、というのを繰り返すから、
グローバルな手続きが再定義できるのは便利でもある。
デバッグが済んだ段階で「全部constantと考えて最適化」という
オプションはあってもいい。

ただ、歴史がある商用のLisp処理系でさえそういうことを重視してないのは
何故だかは考えて見る必要はあるだろうね。
単なるインライニングくらいじゃそんなに速くならないんよ。
型推論して実行時型チェックを減らせるとかなり効果があるけどね。