If you (set! *warn-on-reflection* true) you'll see that the first uses
reflection while the second doesn't. This is (imo) a bug in the
method resolution behavior, namely that the code path for looking up
compiled calls is different from reflected calls.
I submitted a patch to fix both this divergence and to allow for more
correct lookup behavior when it comes to primitive args:
https://www.assembla.com/spaces/clojure/tickets/445
Note that with the patch applied both scenarios result in a "More than
one matching method found" exception, which is (imo) the correct
behavior.
Feel free to bug Stu, et al., to get the patch applied. ;)