I have also seen some duplicates. For me, the reason is because of this segment of code where we are inserting data into the RSExecutionLog table:
INNER JOIN
RSExecutionLog.dbo.Reports R WITH(NOLOCK)
ON C.Name COLLATE Latin1_General_CI_AS = R.Name
AND C.Path COLLATE Latin1_General_CI_AS = R.Path
AND C.Type = R.ReportType
Here, if you have 2 reports with the same name, but they have different cases, the report execution will get added twice. For example, I had a report called "dept activity report.rdl". I then changed it to "Dept Activity Report.rdl". Both report names get added to the reports table, and therefore 1 report execution gets added twice into the RSExecutionLog table. To fix this, I just changed the above code to:
INNER JOIN
RSExecutionLog.dbo.Reports R WITH(NOLOCK)
ON c.ItemID = r.ReportID
It seems like this works fine.
Chris