I’m guessing because in the second version it’s easier for the compiler to prove that the recursion is finite.
This reminded me of Jameson’s post here: Efficient tuple concatenation - #8 by jameson and explanation here: Efficient tuple concatenation - #11 by jameson