I think a better way of handling this would be to have a "base function"
for edebug-after (and for edebug-before), as opposed to the nil that each
of these currently has. These functions would throw an error asking the
user to check the edebug spec. Something like (untested):
(defun edebug-after (before-index after-index form)
"Version of `edebug-after' to call when edebug is not yet set up.
This function gets temporarily replaced by a real function when
edebug becomes active."
(error "Invalid call to `edebug-after' for %S: Is your debug spec \
correct?" form))
.. What do you think?