I have been using items with attribute modifiers for a long while, and I use ItemMeta.equals() to compare a stored ItemStack instance with the item in the player's hand, to make sure they're still holding the item I think they should be holding.
This recently broke, and I believe it is due to this change:
From what I can tell the compareModifiers check won't work because AttributeModifier doesn't implement hashCode, so two separate modifier instances that are functionally identical won't pass the contains() tests.
I'll try to write a proper hashCod method and see if that fixes the issue.