It may be that for *some* speakers, and/or in *some* contexts, the two expressions are interchangeable, but I don't think that applies to *most* usages.

**Exchanged with** is relatively uncommon. It's used when sub-elements of a system under consideration are being altered for some reason (optimisation, analysis, etc.) And in the sense of *exchanged correspondence/contracts/etc. with*.

**Exchanged for**, the more common form, generally implies a barter, or swap.

![][1]


  [1]: https://i.sstatic.net/RYGml.png