Mutual recursion is not tail-call optimizable.
Calling a recursive function through a value also frustrates tail-call optimization.