>> have a real use-case for suppressing mtime updates? > Syncing tables between databases (a la "rsync --times"). Btw, I'm > considering temporarily disabling the update_times() trigger when sync-ing.
I'd consider running the sync as a different (privileged) user and checking the current user in the trigger. Ordinary users always get now(), privileged users always get what they provide (and they are forced to provide some value). Does what you want and adds a safety catch too.
Alternatively, you could do something similar with views.