Even the manual recommends records in lieu of struct-map.
And yes, that flaw is icky; one of the few in Hickey's otherwise excellent track-record in good taste.
The manual? What's the manual?
Re:Common Lisp, Clojure and Evolution
by whateverer on Sunday February 27, 2011 @04:21PM
(#2269006)
Here: http://clojure.org/data_structures, see the entry for StructMaps. The page on datatypes* also implies heavily that structs have been phased out in favor of records, as no reason to use structs over records is presented.
Second, Clojure's defstruct is on its way out. defrecord provides similar functionality with far better performance. By default, however, it does have the positional-arguments-only flaw. My personal favorite workaround is a small macro from this post: http://groups.google.com/group/clojure/msg/5206fac13144ea99
No comment about numerical operations in Clojure: it's a sensitive topic. :)