This is nothing more than a cosmetic annotation; it is useful in creating documentation, gives hints through your Java IDE, and clearly indicates when the method is overridden.
From the point of view of the runtime implementer / standard library, you should not try to modify all existing classes to add something cosmetic.
Also, with regard to backward compatibility of annotations in general, given that annotations are an optional and extended attribute present in the .class file (when their retention policy is either CLASS or RUNTIME and is available to CLASS and Method as Runtime(In)VisibleAnnotations and for Parameter like Runtime(In)VisibleParameterAnnotations ) previous releases of the JVM would simply ignore this attribute when parsing the .class file for the first time a class is required.
But in fact, the 1.4 parser JVM class will not even reach the point where the Annotation .class attribute is inside the structure, because the parsing will end abruptly when the JVM notices that the .class version is larger than supported.
source share