I don't find the linked macro particularly compelling -- however, that macro doesn't change anything about the semantics of anything, it just automates the processing of arguments.  Any function is always free to interpret its arguments however it wants, and a lot of clojure fns already accept &#38; args consisting of key-value pairs that are turned into maps at runtime and then inspected.