Глубокие знания рекурсии можно найти здесь https://en.m.wikipedia.org/wiki/Recursion_(computer_science) Что касается вашей программы, то она остановится, когда i = 6. В противном случае она продолжит печатать раньше.Это связано с тем, что при программировании поток управления никогда не пропускается, он следует за потоком управления, но это не значит, что он оставляет оператор rest, поэтому всякий раз, когда генерируется новый вызов функции, предыдущий статус функционирования помещается в стек один.на единицу, и, таким образом, стек продолжает увеличиваться, и когда, наконец, достигается конечное условие, он извлекает все вызовы функций один за другим из записи активации и выполняет требуемую обработку, и, таким образом, рекурсия работает.Требуется помощь стека для выполнения операций.Поток программы всегда следует порядку, когда вы вызываете его из любого места.Таким образом, поток программы остается таким же.Вы легко поймете работу, если запустите ее и добавите еще несколько операторов печати со значениями i.