Campaigns can have multiple versions.
Inbound leads and therefore the integrations and partner contracts are version specific.
Account contracts are not.
Why is this: an inbound lead is verified so it needs the correct version.
A contract is linked to a campaign and a vertical by means of a specific workflow and version.
This means the client wants to receive leads from this campaign and vertical.
If you use categories also the categories are evaluated in the old version. Because this is what you and your client agreed upon. Of course, you can make a new contract reflecting the new categories.
In the beginning, if you are still working to get your campaign just right this might seem a little tedious. But remember a campaign can also be in a test phase, to get out quirks.
To find contracts which have possible outdated settings you can use the report "Contracts with outdated settings" in the client section of reports.