Semantically speaking, some properties of a Map are impossible to project to functions. Maps have count of elements, maps allow enumerating all elements they contain, this is not possible to do with functions.
Another downside I see is unpredictable complexity of get. Currently when calling get on a map, you can expect operation to be reasonbly fast. In case of (get itentity 1000) it holds, in case of (get #(do (Thread/sleep %) %) 1000) it doesn't. I like Clojure's predictable execution times, such as with conj, that is guaranteed to be O(1), while not guaranteeing item will be inserted into an end of a coll.