Вы правы, рекурсию всегда можно заменить циклом. Более того, рекурсия - это и есть цикл, который за вас выполняет движок языка. Главный вопрос - что для вас будет удобнее: рекурсия или цикл.
Зачем нужна рекурсия в реальных случаях?
Чтобы уменьшить количество переменных, указателей, строк, сложность кода, сложность алгоритма, время разработки, сложность отладки.