After removing a contact from a certain group I noted that the removal date reported on the page was not the current date. Reproduction of the problem may be hard because I think it relies on how the unordered rows are stored internally in the database.
I reproduced this on the demo site as follows:
1. Add a contact to groups A, B and C
2. Remove the contact from groups A, B and C (note the removal times should be accurate)
3. Rejoin the contact to group A, B and C
4. Wait a minute or two
5. Finally remove the contact from groups A, B and C
Be sure to do the adding/removing in the same order each time. The removal times may be off.
This can be fixed by adding an extra column (civicrm_subscription_history.date) to the ORDER clause of the relevant query, ensuring the latest removal date for a group is the one reported.