Допустим, у нас есть две версии рекурсивной функции, одна из которых хвостовая рекурсивная. Есть ли какие-либо преимущества в использовании рекурсивного хвоста функции, если используемый язык не имеет оптимизации хвостового вызова? Насколько я понимаю, без оптимизации каждая версия функции (хвостовая и не хвостовая) будет использовать одинаковое количество кадров стека (в большинстве случаев).
Я знаю, что в некоторых случаях, как, например, функция Фибоначчи, использование хвостового вызова может быть более эффективным даже без оптимизации хвостового вызова, поскольку оно позволяет избежать двойных вызовов. Но что, если ни одна из версий функции не выполняет двойные вызовы? Будет ли хвостовая рекурсивная функция еще более эффективной?