Некоторым программистам нравится использовать рекурсию не потому, что это подходящий метод решения конкретной проблемы, а просто потому, что они чувствуют себя умнее, когда пишут код, который другие разработчики понимают с трудом.
Однако для того, чтобы разобраться в рекурсии, вам нужно познакомиться с такой менее очевидной структурой данных, как стек вызовов, которая контролирует ход выполнения программы.