Boa tarde! Na versão atual do Clojure:
(defn apply-discount "Return discount" [amount] (def discount 0.3) (* amount discount) )
Não há esse erro de escopo global, chamando (discount) fora da função ele dá erro porque não existe no escopo global, acredito que o clojure já está entendendo que esse símbolo tem escopo local.