The elided code in the definition of make-instance checks the
supplied initialization arguments to determine whether an initialization
argument was supplied that neither filled a slot nor supplied an argument
to an applicable method. This check could be implemented using the generic
functions class-prototype, compute-applicable-methods,
function-keywords, and class-slot-initargs. See the third
part of the Common Lisp Object System specification for a
description of this initialization argument check.
[The third part
has not yet been approved by X3J13 for inclusion in the forthcoming
Common Lisp standard and is not included in this book.-GLS]

The generic function initialize-instance behaves as if it were
defined as follows, except that certain optimizations are permitted:

These procedures can be customized at either the Programmer Interface level,
the meta-object level, or both.

Customizing at the Programmer Interface level includes using the
:initform, :initarg, and :default-initargs options to
defclass, as well as defining methods for make-instance
and initialize-instance. It is also possible to define
methods for shared-initialize, which would be invoked by the
generic functions reinitialize-instance,
update-instance-for-redefined-class,
update-instance-for-different-class, and
initialize-instance. The meta-object level supports additional
customization by allowing methods to be defined on
make-instance, default-initargs, and
allocate-instance. Parts 2 and 3 of the Common Lisp Object System specification document each of these generic
functions and the system-supplied primary methods.
[The third part
has not yet been approved by X3J13 for inclusion in the forthcoming
Common Lisp standard and is not included in this book.-GLS]

Implementations are permitted to make certain optimizations to
initialize-instance and shared-initialize. The
description of shared-initialize in
section 28.2
mentions the
possible optimizations.

Because of optimization, the check for valid initialization arguments
might not be implemented using the generic functions
class-prototype, compute-applicable-methods,
function-keywords, and class-slot-initargs. In addition,
methods for the generic function default-initargs and the
system-supplied primary methods for allocate-instance,
initialize-instance,
and shared-initialize might not be called on
every call to make-instance or might not receive exactly the
arguments that would be expected.