On top of that, GWT 2.7 explicitly sets a "modified time" on the nocache.js that doesn't actually reflects neither the time you compiled the project nor the latest modified time of the files used for the compilation (it sets it to the modified time of the gwt.xml file).
If you package your app as-is in a WAR, it's possible that your server will send the modified time as a Last-Modified response header and honor If-Modified-Since; and if the modified time happens to be earlier than or equal to that of your previous nocache.js, then the browser will use its (actually stale) cached version. Using ETag/If-Match instead of (or in addition to) Last-Modified/If-Modified-Since would mitigate the problem.
Otherwise, make sure your nocache.js modified time actually is "OK".
Note: the change has been reverted in 2.8, and the net.ltgt.gwt.maven:gwt-maven-plugin has a workaround for it.