хвостовая рекурсия после оптимизации
Компиляторы msvc и gcc всегда разворачивают хвостовую рекурсию в цикл, а вот icl этого делать не умеет.
msvc: устраняет хвостовую рекурсию
icl: не устраняет хвостовую рекурсию
gcc: устраняет хвостовую рекурсию