More commonly, this destructuring is done in macros, by their "macro lambda lists". destructuring-bind is just a binding gadget which performs almost the same destructuring as macro lambda lists.
(Why almost: because "destructuring lambda lists" don't support the environment parameter of macro lambda lists!)
It did get me thinking, though, so I appreciate the advice. I'm wondering now how to port that idea to Ruby.