>>418
ハッシュ値は関係ないと思う
完全ハッシュ関数を作らないかぎり、ハッシュ値はふつう重複する
Wikipedia のハッシュテーブルとかハッシュ関数の頁を参照

で、問題は compare-strings は文字列が一致しないときに数値を返すこと
(defun case-fold-string= (a b)
(string-equal (upcase x) (upcase y)))
ならうまく動いた