The bean definition for each Trigger did not have the "name" attribute. Therefore, Spring's CronTriggerFactory was dynamically generating a new trigger name with each deployment, being the reason why this caused an additive effect (triggers with different names are not overwritten).
Adding name="..." with an unique value to each trigger definition solved the issue.