> Can't any tail call be rewritten as a loop?
No. In general tail calls cannot be rewritten into loops.
No. In general tail calls cannot be rewritten into loops.
Consider a state machine where each state is a function, and you transition into a different state by tail-calling another function.
State machines can have arbitrarily complicated graphs, that would be hard to put into a simple loop.
(However, you can do something like a 'trampoline' to remove the mutual recursion.)