PersistentQueue implements Sequential but doesn't implement java.util.List. Lists form an equality partition, as do Sequentials. This means that you can end up with nontransitive equality:
(def q (conj clojure.lang.PersistentQueue/EMPTY 1 2 3))
(def al (doto (java.util.ArrayList.) (.add 1) (.add 2) (.add 3)))
(def v [1 2 3])
(= al v)
(= v q)
(not= al q)
This happens because PersistentQueue is a Sequential but not a List, ArrayList is a List but not a Sequential, and PersistentVector is both.