CLJ-1384-p2 uses transients for both create and createWithCheck. This is consistent with the current implementation for map.
clojure.core/vec calls (more or less) PersistentVector.create(...), which uses a transient vector to build up the result.
clojure.core/set on the other hand, calls PersistentHashSet.create(...), which repeatedly calls .cons on a PersistentHashSet, with all the associated speed/GC issues.
Screened by: Stu