It could be done on `defrecord` impls. It relies on `maybe-destructure`, following a similar code path as `fn`'s redefinition in `clojure/core.clj`. Could just copy-paste that in.
I suspect this would work and work well, but i know there are edge cases I'm not considering and there's probably some cost-benefit for speed etc that has been accounted for. @alexmiller, any thoughts?