I am unsure if the following statements make sense:
Invoking a non-tail-recursive function in a functional programming languages has, typically, a space efficiency problem due to growing call stacks.
Each non-tail-recursive function can be systematically transformed to a tail-recursive one by transforming the function call to continuation-passing style.
Continuation-passing style is the rescue for functional programming languages because without it, non-tail-recursive functions which prevail in code base of functional programming languages would necessarily cause significant performance issues.