I believe you need to be sure to specify "True" as the return value (on an "Exit Script" step) when exiting the script that proceeses the "OnObjectExit" trigger.
Otherwise, FileMaker assumes your script has decided the field should not be exited.
Is that sort of a standard procedure? - the "True" exit script step. Very tough to sort out as the script never appeared in the debugger. Never saw this in FMP11.
Yes, that a standard feature of some of the script triggers since they were introduced. Some triggers fire "before" the event is handled by FileMaker and some fire "after". OnTabSwitch fires before, so you have a chance to cancel it if, for example, you want to prevent a certain class of users from seeing data on a certain tab.
Here's a note from the online help text:
Some script triggers allow for the activating command or event to be canceled if the script executed by the script trigger returns a False value. When a command or event is canceled this way, the error code is set to 20. See Get(LastError) function for more information. If the script executed by the OnLastWindowClose script trigger returns a False value, then the file will not close.