Limit is a guard
The recursion limit stops runaway calls before the real stack crashes. Raising it trades safety for reach, not unlimited memory.
Explicit stack is the escape
Any recursion can be rewritten with your own stack in a loop. That removes the depth limit at the cost of clearer code.