>You encounter it in the recursive case, painfully, when your stack overflows.
People who write high performance code don't worry, because they write the recursion properly, and tail recursion doesn't use the stack.
If your understanding of recursion leads to stack overflows then you're missing a significant tool in your toolbox.
There is no more need to overflow a stack using recursion than there is to overflow a stack or heap trying to store state when unwinding a recursive function into an iterative one.
However, the recursive solution is vastly simpler in many cases since you don't have to fiddle with state, which is mutable and error prone, and can instead use immutable concepts (in any language) to write correct code more quickly with zero penalty in execution speed or space. It makes you a more valuable employee to learn these techniques.
People who write high performance code don't worry, because they write the recursion properly, and tail recursion doesn't use the stack.
If your understanding of recursion leads to stack overflows then you're missing a significant tool in your toolbox.
There is no more need to overflow a stack using recursion than there is to overflow a stack or heap trying to store state when unwinding a recursive function into an iterative one.
However, the recursive solution is vastly simpler in many cases since you don't have to fiddle with state, which is mutable and error prone, and can instead use immutable concepts (in any language) to write correct code more quickly with zero penalty in execution speed or space. It makes you a more valuable employee to learn these techniques.