Hi Sunder
Run program PRGN_COMPRESS_TIMES using SE38 or SA38.
It removes duplicate roles as well as expired roles.
users vs roles can be taken from table AGR_USERS.
You Can give specific users and execute the program as well
The reason behind sap not restricting duplicate roles is , roles can be assigned directly or indirectly(position based using org structure). So it will be a total mess.