I spent much of a week debugging an issue in a Clojure multiplayer game where the same action was being handled differently on different machines. Somehow, the "true" branch of an if-statement was being taken even though the condition was "false."
The reason? When the action was sent over the network, the boolean was converted to a Boolean.
On the same project, I would also frequently suffer from name-typoes -- in structure keys (deftype and defrecord didn't exist yet).
A dynamically-typed language is still dynamically typed. A lot of basic analyses are still undecidable. Lexical scoping doesn't fix that.