「再帰の際の環境をスタックに保存するか、ヒープに保存するか?」とか
「末尾再帰の最適化をするか?」とかは、実装依存の話だよね。

環境依存の話を環境を限定せずに議論するってのはどうなの?
こうゆうのを遅延評価って言うのか(^^)