Позволяет-то позволяет, только кому это надо - писать такой код?
Он может написаться вполне непреднамеренно. Захотели проверить какое-то условие, а проверка всё никак не завершается.
Реальные компьютерные программы рассчитаны на разумное время исполнения. Если оно превышено, можно с уверенностью заключить, что что программа работает неправильно - не важно, вошла она в бесконечный цикл или вознамерилась вычислить факториал от миллиарда.
Это да, но какое время считать "разумным"? Понятное дело, что если ответ не так уж и важен, то подождали несколько минут и плюнули. А если всё же хочется получить ответ? Так может быть подождать подольше, да и суперкомпьютер взять помощнее эдак раз в миллион?
А дальше дело отладки. Изолируем кусок данных, на котором программа сбоит, выполняем ее пошагово и смотрим, на каком шаге получается ерунда.
Может быть и так, что Вы никак не изолируете кусок, на котором программа сбоит, да и вообще не поймёте, что это сбой. Приведу свой любимый пример: Человеку объяснили, что такое совершенное число и привели примеры - 6 и 28, а на вопрос: "Бывают ли нечётные совершенные числа?" - сказали, что не знают. И он, вместо того, чтобы посмотреть википедию, решил написать простую программу поиска нечётных совершенных чисел. Каков будет результат, если программа написана достаточно грамотно для того, чтобы сразу не вылетать по переполнению регистра? Результат известен: Она за разумное время не закончится. Это "сбой"? Но ведь никто не доказал, что нечётных совершенных чисел не существует, может быть просто компьютер нужен помощнее (чем использовались до сих пор) и подождать подольше.