The drawback is that it's every defmethod's responsibility to make sure it sets the vtable entry if necessary.
I was thinking more of wrapping the implementation of either defgeneric or defmethod in a `(do (or= ..) ...)