Expected syntax for destructuring-bind

Yeah, I think the semantics that are non-obvious are the behavior of reading (and evaluating, keep in mind clojure treats vector, map, set literals as forms as well, which go through an evaluation pass) and quoting prior to evaluation. I think in your initial example, the metadata was not being preserved as you thought. With the quoted form of the vector, all the read-time metadata is preserved. In the initial variant, those symbols were evaluated (quote …) and the metadata associated with the list (quote a) was elided from the final result (I think).