Не холивора ради, но концептуально куда чище же подход примененный в Scheme, когда функция - лишь частный случай какого-либо определения.
У этого подхода есть свои плюсы, которые позволяют строить на основе лексической области видимости интересные вещи.
Не знаю, как в Clojure, но вроде они пошли по пути Scheme в этом плане.
Но вот есть некоторые сторонники Common Lisp, которые утверждают, что это все таки зло и котлеты отдельно, мухи отдельно.
Был бы рад подробной аргументации этого подхода, желательно в сравнении с подходом с общим пространством имен.