What do Clojure symbols do when used as functions?

Symbols look themselves up in a map, much as keywords do. See Symbol's implementation:

…
122 public Object invoke(Object obj) {
123         return RT.get(obj, this);
124 }
125
126 public Object invoke(Object obj, Object notFound) {
127         return RT.get(obj, this, notFound);
128 }
…

(RT is clojure.lang.RT, which does just about everything. "RunTime"?)

In the example given, the lookup is failing (because 16 is not a map), and therefore the notFound value (8) is being returned.