if you have no annotation or an empty annotation you look for the destination to use in the incoming message
The secret is in the annotationRequired flag if you see how supportsReturnType is written. The SimpAnnotationMethodMessageHandler registers 2 instances of SendToMethodReturnValueHandler - one in the beginning which requires an annotation and one at the end which serves as a default handler for a return value that wasn't handled in any other way.
If you use this new feature with the proposal, it means that the annotation is always present (since we check also the holding class).
If you put @SendTo at the type level it's effectively inherited at the method level and hence applies to all methods.