LISP マクロ パラメータでの構造化解除は便利なことだと理解しています。必須なのか気になります。例として、
(defmacro m1 (a) (car a))
と
(defmacro m2 ((a1 a2)) a1)
パラメータの正しい形式をチェックすることを除いて、(ほぼ)同等のようです。
私の推測では、分解するとコードの記述/理解が容易になりますが、それを使用するコードは、そうでないコードに変換される可能性があります。私は正しいですか、それとも愚かな初心者の間違いですか?