これは正式な回答ではありませんが、私のテストと ClojureDocs の参照に基づいています。
dissocのアリティには、1 つの引数であるマップを渡すことができることが含まれます。その場合、キー/値はマップから削除されません。
(def test-map {:account-no 12345678 :lname "Jones" :fnam "Fred"})
(dissoc test-map)
{:account-no 12345678, :lname "Jones", :fnam "Fred"}
assocには同様のアリティがありません。つまり、assoc を呼び出すには、マップ、キー、および値が必要です。
なぜこれがこのように設計されたのかは別の問題です。その情報で回答が得られない場合は (そうであることを願っています)、報奨金を提供するか、Clojure の Google グループにアクセスしてその質問をすることをお勧めします。
これがソースです。
(defn dissoc
"dissoc[iate]. Returns a new map of the same (hashed/sorted) type,
that does not contain a mapping for key(s)."
{:added "1.0"
:static true}
([map] map)
([map key]
(. clojure.lang.RT (dissoc map key)))
([map key & ks]
(let [ret (dissoc map key)]
(if ks
(recur ret (first ks) (next ks))
ret))))