It is possible to add a build phase to a non-existing phase without an
error. The new build phase will simply not be executed.
This is problematic when an inherited package augments the original
package’s phases and the original package is changed. Imagine that the
parent package’s “pre-configure” phase is removed:
(add-after 'pre-configure 'patch-this
(lambda _ …))))
This would cause the “patch-this” phase in the child package to be
skipped without warning.
This kind of thing can be especially confusing in the bootstrap, which
makes heavy use of inheritance.