This seems unfortunate:
=> (-> :foo str keyword)
Symbols are far saner in this regard:
=> (-> 'foo str symbol)
Simply stripping leading colons from strings prior to turning them into keywords should suffice. The 2-arity Keyword.intern method and clojure.core/keyword fn should be left intact, so as to provide an escape hatch for those that really do need colon-prefixed keywords.