Сразу уточню, что язык с 1 оператором компактным не будет — вам нужно будет писать тонны неразборчивого кода для элементарных вещей.
Давайте, все-же, возьмем реально существующие ЯП.
Вот те же begin|end супротив {} — второе, очевидно, компактнее — и меньше писать и ясность мысли не теряется — и дураку понятно. Можно сказать что отступы еще яснее, вообще не нужны {} — ну пусть, не так важно.
Далее. Определение и вызов функций.
Вот взять Haskell — в этом отношении ничего лучше не придумать.
fun1 x = x + 1
-- вызов
let result = fun1 1 -- вернет 2
Компактнее придумать сложно. И хитрость там в том, что любая функция принимает 1 аргумент и возвращает 1 аргумент (хотя выглядит так, как будто передается 2 аргумента — просто второй аргумент передается в функцию, которую вернула предыдущая функция). При желании можно уточнить данные.
Т.е. ни скобок — никакой лишней мишуры.
Однако тут вот в чем подвох — как определять данные? Получается, сделав красивое и компактное определение функций — мы лишили себя возможности использовать этот финт для данных
И тут вопрос — чего в вашей проге больше — вызовов функций или деклараций и дефиниций данных. Скорее всего в среднестатистической проге больше данных.
Давайте мысли по теме.