We faced many issues with the duplicate detection process in CRM 4.0 where CRM had an async job with a time gap to create the duplicate detecion match codes. Problem for us with 4.0 was, system was not able to find the duplicates when we import Leads just because of asynchronous generation of match codes. At that time we had a plugin to check the duplicates synchronously, still some times two plugins fire at same time and in the end we get the duplicates.
Now CRM 2011 supports duplicate detection process in a synchronous way unlike in 4.0. This means that MatchCode generation is always done synchronously.
By setting SuppressDuplicateDetection attribute to false we can check the duplicates when we are creating or updating records from crm service requests.
Now we can compare different entities data also. These are going to be helpful in many scenarios.