Если ты хочешь тьюринг-полный язык, то у тебя очевидным образом будут вещи, которые известны и проверяемые только в рантайме.
А полностью статическая программа бессмысленна, т.к. её можно и в компайл тайме посчитать.
И важная деталь, что суть систем типов именно в том, чтобы проверять свойства программ без знания самых значений, которые в неё придут, а со знанием только их типов.