関数呼び出しとスタックのコスト。

だからこそ、末尾再帰という最適化が考えだされたんだよ。
最適化してループに変換しなければ、非効率だってこと。
末尾再帰は特殊なパターンでしか使えないしな。