You’ve never read a 5000 line recursive method that returns different numbers of arguments depending on where it chose to execute the recursive call.
If all you do is replace the recursion in that example with one (or more) loops with mutable indexes, chances are the code will get worse.
Bad code is hard to read, that is orthogonal to the fact that it is recursive.