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