core.logic does not work correctly with dynamic variables, as illustrated by the following code:
(def ^:dynamic dvar 'original)
(binding [*dvar* 'changed]
(logic/run* [?x] (logic/== ?x dvar)))
;;outputs (original), expected (changed)
To the best of my knowledge this used to work in older versions, although I do not know when the behaviour changed.