So from the pure code point of view, there is not really any major difference.
The difference occurs once you start distributing your code afterwards.
As long as you do not ship your code with the annotations jar and a JRE, you should be OK.
If you are distributing a JRE then as you already know you need to comply with the Oracle Java Binary License.
You may want to refresh yourself with the terms of that license, specifically:
F. JAVA TECHNOLOGY RESTRICTIONS. You may not create, modify, or change the behavior of, or authorize your licensees to create, modify, or change the behavior of, classes, interfaces, or subpackages that are in any way identified as "java", "javax", "sun", “oracle” or similar convention as specified by Oracle in any naming convention designation.
So if you are distributing a JRE and the same distribution includes a jar file that defines classes in a javax
subpackage, unless the classes comply with a specification released and published by a JSR, you are not complying with the terms of the Oracle Java Binary License.
It is at this point that you then should take a look at the JSR 305 official page.
At this point in time that JSR has not published anything:

So you will need to ensure that you do not distribute the "jsr305.jar" file beside a JRE in your Windows installer, OS-X installer, Docker image, etc.