'replace-in-form' is a tree-replace, which in Clojure is done with clojure.walk/postwalk-replace. The clojure.walk package is basically tree-map stuff.
Sadly, as far as I know, you need to roll your own tree-reduce.
Sadly, as far as I know, you need to roll your own tree-reduce.