I see it, certain algorithms need guaranteed tail-call elimination, otherwise they are too inefficient and must be manually unrolled or rewritten to avoid blowing the stack. So a compiler optimization that is "nice to have" is not good enough.
No algorithm requires tail-call elimination in a general-purpose language with imperative mutability. It's just another way to express iteration.
No algorithm requires tail-call elimination in a general-purpose language with imperative mutability. It's just another way to express iteration.