Возможный дубликат:
Есть ли проблемы, которые невозможно записать с помощью рекурсии хвоста?
По моему мнению, хвостовая рекурсия - это оптимизация, которую вы можете использовать, когда рекурсивный вызов не нуждается в информации от рекурсивных вызовов, которые он будет спамить.
Возможно ли реализовать все рекурсивные функции с помощью хвостовой рекурсии? Как насчет чего-то вроде DFS, где вам нужно, чтобы самый внутренний ребенок возвращался до родителя?