Да вот собственно в том-то и проблема.
С одной стороны мне тоже кажется, что запрещать нет причин. Тому подтверждением может служить и то, что потенциально бесконечные структуры только так и определяются. Например, бесконечные последовательности (цифр, без о.о.) естественно определять как-то так: «БП есть цифра (голова) и БП (хвост)». Хотя на практике удобнее рассматривать как отображение
. Собственно, как-то так строятся структуры данных спискочного типа (т.е. список, деревья и им подобные в различных языках программирования), а там порой удобно оперировать бесконечными списками.
С другой же, как правильно сказал VPro, мы многие понятия определяем конструктивным образом. Натуральные числа (см. выше), или, что меня смущало ранее, λ-термы имеют такой же характер определения, но что первые, что вторые всегда конечны, так как конструируя объект (число, терм) "с нуля" мы за конечное число шагов можем "построить" только конечные по размерам объекты.
(Оффтоп)
2 vPro: натуральные числа мне кажутся столь естественными для человека (может, в школе внушили так, не знаю), что мне очень сложно работать с ними настолько формально. Это говорю к тому, что Вами приведенная аналогия является ещё одним поводом для вопроса, и не может рассматриваться как ответ в духе "очевидно ведь".