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?