The reader docs at http://www.clojure.org/reader say that #() is not a replacement for (fn  ...). You can't make it more equivalent to fn without making it much harder to understand. Let me explain that with an example.
(defn get-time 
(#(get-time)) ;; What's the result?
What's the result of the funcall above? Clearly, right now, it is the current system time.
So if we decided to allow to write #(true) as an alternative to (constantly true) [which is a varargs fn] or #(do true) [which is a fn of zero args], then valid values of #(get-time) where both the current system time but also the function object for get-time. Functions are values, too.
Ok, one could say that in the case of a function, #(function) is always a call, but it would make it harder to reason about what the code does for not much benefit.