Каждый вызов занимает некоторое место в стеке.Когда вы вызываете вещи рекурсивно, первый вызов все еще продолжается, а второй начинается, поэтому вы используете пространство стека для двух вызовов.Если вызов № 2 делает вызов № 3, то ваш стек содержит 3 вызова и т. Д.
Предел рекурсии зависит от того, сколько у вас стека.