Destructured lambda-lists appear to be an Elisp extension to Common Lisp's argument notation,
and the Emacs docs do mention them (though not in the Elisp manual; rather, it's in the CL-Lib manual).
They even mention your point about such a lambda-list not being valid Common Lisp.
From the CL-Lib manual, 4.3.2 (Function Bindings):
Functions defined by ‘cl-flet’ may use the full Common Lisp
argument notation supported by ‘cl-defun’; also, the function body
is enclosed in an implicit block as if by ‘cl-defun’. *Note
Program Structure::.
Following the reference to Chapter 2, and heading into 2.1 (Argument Lists):
Argument lists support “destructuring”. In Common Lisp,
destructuring is only allowed with ‘defmacro’; this package allows it
with ‘cl-defun’ and other argument lists as well.
That is, while 'defun' doesn't support this, 'cl-defun' (and, by extension, 'cl-flet') does.
- Brandon