Я думаю, что необходимо провести различие между «рекурсией хвоста» и «общей рекурсией».
Все хвостовые рекурсии могут быть реализованы в виде циклов - без использования стека.
Поддержка общей рекурсии также может быть реализована в виде цикла, но со стеком.
Рекурсивные CTE - это рекурсии Tail и, следовательно, по сути, Loop. Единственная разница заключается в том, что условие завершения обрабатывается семантикой SQL / механизмом выполнения. Выходные данные каждой итерации цикла имеют значение UNION или любой другой заданный вами параметр.