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