Object/module files can become incompatible when the version changes. You could add the compiler version to the dependency tree. Then when the version changes a build would force a rebuild of all source files.
Module versions actually haven't changed in a while, thankfully. The issue is just changes to the runtime library. I'll look into possibly storing a compiler version, but the compiler upgrades aren't particularly frequent.
Similarly, when the option string changes a rebuild should be forced.
I think the user should be asked, but it isn't a bad idea. There are many projects when a rebuild is not a trivial amount of time, and users may not wish to do this.
And could we have a rebuild menu item (and function key), instead of having to click clean/build.
Finding function keys that are available is always a bit hard, but I'll see...