After discussing this topic with client, we arrived at the following documentation link:
It specifies quite clearly that contract jar files get attached to each transaction:
This is because each time a contract is used in a transaction, the entire JAR containing the contract's definition is attached to the transaction. This is to ensure that the exact same contract and state definitions are used when verifying this transaction at a later date. Because of this, you will want to keep this module, and therefore the resulting JAR file, as small as possible to reduce the size of your transactions and keep your node performant.
However, after validating this on #corda-tech-questions, it was revealed to be a false statement.
It is quite important to update this completely false statement to reflect the reality.
If a contract jar was attached to each transaction, that would have huge implications on network traffic throughput.