I think that the term "Repeat" has lost its meaning in some ways. M*A*S*H (for example) is 40+ years old and every episode is technically a "Repeat". There needs to be a way to designate a repeat within the latest rerun season.
I think that there actually needs to be two classifications: "Repeat" and "Rebroadcast". A "Repeat" is anything that has ever been broadcast previously, whereas a "Rebroadcast" is a repeat of a programme that was broadcast in the last (let's say) 7 days.
I have had a look at the current ICE XML feed and there is a "previously-shown" tag, but that it not always updated.
I can see the MASH episode "838-99318" at 2015/05/24 08:30:00 UTC and the same episode at 2015/05/24 22:00:00 UTC. Both show the "previously-shown" tag as "20101101". This can not be true for the later broadcast as the programme was broadcast just a few hours previously.
If the "previously-shown" tag was updated properly, then it should be possible to decide whether to record the first or second occurrence. As the XML feed has the same "episode-num" tags, it should also be possible to look forward in the EPG for a reoccurrence of the episode and flag that to be recorded, a "next-scheduled" tag could also be created and included in the XLM feed for this purpose.
Under the classifications described above, a "First Run" can be a "Repeat", but not a "Rebroadcast". You could skip the "First Run" if there is a clash and record the "Rebroadcast" in its place.