Referring to comments added to the JIRA issue:
Thank you for fixing the dead code. As to strings resolving as true in composite?, look again and you'll see a `(string? x)` test in the composite? function. My expectation was that the following would not unify (that "foo" would be treated as atomic):
user=> (require '[clojure.core.unify :as u])
nil
user=> (u/unify '[?x ?y ?z] "foo")
{?x \f, ?y \o, ?z \o}
However, I can see that changing it now might be considered a breaking change and so not worth it.