The functions clojure.walk/keywordize-keys and stringify-keys do not respect Records. When called on a data structure, any Records in the data structure will be transformed into plain maps.
E.G.,
user> (defrecord X [a])
user.X
user> (assoc (X. 1) "thing" 2)
#user.X{:a 1, "thing" 2}
user> (clojure.walk/keywordize-keys (assoc (X. 1) "thing" 2))
{:a 1, :thing 2}
user> (type (clojure.walk/keywordize-keys (assoc (X. 1) "thing" 2)))
clojure.lang.PersistentArrayMap