1: Как и любой другой, он останавливает вас от выполнения операций, которые либо плохо определены, либо чей результат будет «бессмысленным» для людей.Как и сложение с плавающей запятой для целых чисел.
2: Нет, самый старый язык программирования в мире, (нетипизированное) лямбда-исчисление, является функциональным и нетипизированным.
3: Вряд ли, функциональный просто означает отсутствие побочных эффектов, никаких мутаций, ссылочная прозрачность и так далее.
Просто помните, что самый старый функциональный язык, нетипизированное лямбда-исчисление, не имеет системы типов.