It may happens on big installation, if some queries are not "very very fast", but theoretically on any installation.
According PHP source code:
1. Zabbix retrieves all discovered triggers from trigger prototypes
2. Trying to remove linkage between discovered triggers and prototypes in trigger_discovery by triggerid column
3. Removes quite a lot of additional information like action conditions, services and etc (linked to triggers to be removed)
4. Removes discovered triggers
5. Removes trigger prototype
So if after 1 step new trigger will be discovered, it will be not removed at 2 step, but during 5th step foreign key constraint will be corrupted.
Probably the same issue can happen for any other resources which may be discovered automatically!