末尾再帰にがっかり

関数型言語で、私にとって魅力的に思えたキーワードに末尾再帰最適化があったのですが、SICP読んでみたら、(帰納プロセスじゃなくて)繰り返しプロセスの再帰に関してスタックを消費しない処理系ということだったのですね。
繰り返しプロセスの実装は、ステート(手続き型の変数)を引数で宣言するようなものなので、関数型言語の邪道と思っていました。最適化のためには奨励されることになっているとは。
せっかくの関数型が、パフォーマンスを考えると手続き型の焼き回しに近くなって面白くない。やっぱり関数型言語スクリプト言語と考えた方がいいのかな。