If I recall correctly, tail recursive functions always have an easy non-recursive equivalent.
Since recursion involves unnecessary function call overhead, it’s better to do it the non-recursive way.
Is this assumption always true? Are there any other arguments for/against tail-recursion?
If you are using a language with a good compiler then these types of recursion can be optimised away, so in those cases if it improves readability to use recursion, I’d say to stick with it.