Согласно книге Программирование Clojure ссылки управляют согласованными синхронными изменениями общего состояния, а атомы управляют несогласованными синхронными изменениями общего состояния.
Если я правильно понял, «скоординированный» подразумевает, что множественные изменения инкапсулируются как одна атомарная операция. Если это так, то мне кажется, что для координации требуется только вызов dosync.
Например, в чем разница между:
(def i (atom 0))
(def j (atom 0))
(dosync
(swap! i inc)
(swap! j dec))
и
(def i (ref 0))
(def j (ref 0))
(dosync
(alter i inc)
(alter j dec))