Как оптимизировать функцию, выбирающую из списка только элементы, встречающиеся более n-раз?
В стандартной библиотеке есть функция frequencies. Но если изобретение велосипеда в учебных целях, то:(defn calculate-frequencies [xs]
  (reduce
   (fn [xs x] (assoc xs x (inc (get xs x 0))))
   {}
   xs))

(defn greater-then [m n]
  (filter #(> (val %) n) m))
P.S. Стоит придерживаться принятого соглашения о стиле кода.
Для общего случая - отсортировать массив и одним проходом посчитать количество и занести в новый массив.
Для частных случаев может быть и более оптимальное решение.