A transform or heuristic must be developed so that naive recursion can be trivially unrolled into a loop (or state machine in cases of trees and graphs). Tail recursion is simply too tricky to reason through for complex logic unless you enjoy doing induction proofs.
I have been pining for a first-class language support for recursion schemes after learning and using them. Supplanting naive recursion with structured recursion would be an interesting move for a language. Does it have as much potential as structured programming?
When the 'functional for-loop' along with
'mutable but immutable variables' were created,
pure functional programming was finally made
available for the masses.