No algorithm requires tail-call elimination in a general-purpose language with imperative mutability. It's just another way to express iteration.
Sure, but mutual recursion might require `goto` for example. Or an explicit state machine.
Sure, but mutual recursion might require `goto` for example. Or an explicit state machine.