Yea, it can't cancel because it doesn't know there aren't any changes until it does the backup. (Is there a way to test that within KM? That'd be really handy if so. Are there tokens that could be checked to see what's changed?)
The upside is that if there aren't any changes, the resulting backup will be tiny—I just ran two of them about two seconds apart, and the second backup was all of 84KB. So you lose 20 seconds or so and a bit of drive space if there weren't any changes.
If anyone knows of a way to tell what, if anything, has changed before exporting, that would enable a feature that would really speed up the backups: Instead of exporting all, MBU could just export those that had changed (though figuring out how to do that might be a bit tricky), and then copy the existing hard links for all the other files.
Edit: Thinking about it, it'd be more complicated than that. I'd somehow have to be able to track if a given macro had changed since the last time the macro was run. If the info is available on each macro group's last modification time, I could write a global with the last run time of MBU, and then select based on anything that was modified since then.
Edit 2: Hey wow, you asked about this very thing, and found an answer! OK, so that's something to play with, though ideally, I just need it at the group level: If a group has been modified since the last MBU run, it needs to be exported.
-rob.