call-next-method does not check arguments
CLHS:
When providing arguments to call-next-method, the following rule must be satisfied or an error of type error should be signaled: the ordered set of applicable methods for a changed set of arguments for call-next-method must be the same as the ordered set of applicable methods for the original arguments to the generic function. Optimizations of the error checking are possible, but they must not change the semantics of call-next-method.
In short, in safe code, call-next-method has to check that the set of methods for its arguments is the same as the original set. Currently call-next-method does no checks whatsoever.
Smart implementation here would probably be, first, to check if all the required arguments are eql to the original arguments, as this is fast and covers the common case of using call-next-method just to change keyword or rest arguments.
For the full case, scymtym's work is probably relevant to do it quickly. See https://techfak.de/~jmoringe/call-next-method-argument-checker/call-next-method-argument-checker.html