Dealing with duplicates in TMs
Since the storage of TM roles together with a TM entry was introduced, the role value behaves similarly to context. Assuming you have the default settings for the TM (store context and multiple translations are not allowed) then one TM entry is stored per context AND role. In other words, if storing roles is enabled, and a translator confirms a segment, and then a reviewer 2 confirms the same segment in the same context, then a new entry is created instead of overwriting the existing entry.
On the other hand, if you confirm the same segment in the same context with the same role, you overwrite the existing entry in the TM. This can lead to undesired duplicates in the TM. When you turn the storage of roles off in the TM settings, you are not getting rid of duplicates for existing entries that are already in the TM. In fact, if you already have the same entry in the TM with three different roles for example (T, R1, and R2), and turn the storage of roles off, and confirm the same segment again in the same context, you create a fourth TM entry because now the role to store is different again (role=None).