To be honest i have to disagree here. Committing one object is something different from changing it.
In your example you delete the specification which results in a change of your invoice. But it does not result in a commit of your invoice. Thus It would be inconsistent to trigger this event.
I agree with you that deleting the specification object has consequences for the invoice object, but i disagree with the assumption that all checks that influence the invoice should be done on the invoice itself.