Each Record Type has its own data structure in incomingMatchExpression and existingMatchExpression of matchDetails section.
So when we change incomingRecordType or existingRecordType we should clean up / nullify / purge their corresponding data structures in corresponding sections of matchDetails.
We do it on UI using form state data structures.
However server ignores nullified sections in the save process and lives them and their data intact.
It causes wrong data and even unwanted UI controls left on the form after save.
Examples of such changing data structures in matchDetails can be found in attachments to this issue: