В принципе, все предельно ясно изложено, но хотелось бы посмотреть на более актуальные примеры использования рекурсии (помимо вычисления степеней, факториала и т.п.)
Рекурсия позволяет создавать код с неизменяемыми переменными, что
делает код более читабельным,
защищает от ошибок типа «действия выполнены в не верном порядке», «использована не-инициализированная переменная» и других аналогичных,
облегчает организацию контроля корректности входных данных,
позволяет читать код с любого места, не просматривая его весь, отслеживая все изменения переменной,
облегчает отладку.