According to Cardano's ledger spec (page 26), the purpose of witnessing is to make sure that the intended action is authorized by the holder of the signing key, providing replay protection as a consequence. For example, the signature of a transaction and a Plutus script are both witnesses.
Witnesses are used by block producers to validate transactions. After a transaction is validated by a block producer, it will be included in a new block, which is then propagated to the network, and verified by the rest of pools. Obviously, witnesses are required as part of the block validation. However, theoretically, once a transaction is validated and included in a block, is there a strong reason to keep the witnesses in the block? Can witnesses be discarded after being used in transaction validation in order to reduce the size of the blockchain? What does the lifecycle of witnesses look like in Cardano?