Кейс, где рекурсивный вызов - самое последнее действие функции, это "хвостовая рекурсия". В некоторых языках и средах выполнения имеет место "оптимизация хвостовой рекурсии", то есть компилятор переписывает это дело так, что текущий вызов завершается перед следующим, и таким образом не будет переполнения стека, какой бы глубокой рекурсия ни была.
В языках программирования, куда не завезли цикл, это имеет смысл. В нормальных ЯП такая фича бесполезна, потому что легко переделать на цикл вручную. Есть ли оно в Питоне, непонятно, беглый поиск ответа не дал.