И в этом и суть надъязыков: они навязывают практики, с которыми порог "комфортной сложности" оказывается значительно выше, и архитектура частично складывается сама по себе. И у кложи/кложаскрипта просто неплохой набор таких практик.
Та же иммутабельность по умолчанию. Она выливается в то, что любое изменённое значение фигурирует в коде как отдельное от исходного значение. Во-первых, для изменённого значения нередко нужно новое имя — плюс к самодокументированию кода. Во-вторых, если предыдущее значение кто-то ещё использует в каком-то далёком скоупе, он точно не сломается от того, что оно вдруг изменилось в неудачный момент. В-третьих, чтобы изменения кто-то увидел, нужно передать именно изменённое значение, что упрощает трассировку, не нужно гадать, какое из предшествовавших действий возымело некий эффект.