The major advantage of the tail recursion is that it operates in constant space, recursion has the disadvantage of taking a shit ton of space and can often blow the top off the stack.
It can also be significantly faster depending on how the interpreter optimization is implemented, but that isn't really the theoretical advantage.