末尾再帰の最適化は多くの場合はコンパイラの最適化オプション(GCC とか)であって、
言語仕様として要求される事は少ないですね。関数型言語くらい?