Existem problemas que não podem ser escritos usando a recursão da cauda?

A recursão de cauda é uma importante estratégia de otimização de desempenho em linguagens funcionais, pois permite que chamadas recursivas consumam pilha constante (em vez de O (n)).

Há algum problema que simplesmente não possa ser escrito em um estilo recursivo de cauda, ​​ou é sempre possível converter uma função ingenuamente recursiva em uma função recursiva de cauda?

Se sim, um dia os compiladores e intérpretes funcionais poderiam ser inteligentes o suficiente para realizar a conversão automaticamente?

questionAnswers(5)

yourAnswerToTheQuestion