The lexical binding shadows the global binding if it isn't in functional position:
(def trivial-example (obj with) (foo obj with))
does what you would expect it to do. But I don't know whether or why it's better that global macro definitions override lexical bindings in functional position.