It seems that item.AnnId could be unique as IPlayerArmorySet seems to bind player items to it using item.AnnId.
So I could assume that item.AnnId is unique and can be used as unique identifier for items (or actors more generally).
There is also item.ItemUniqueId but that seems volatile and more like current hash for the item.
That could used to check if item has been changed (as its hash would change as well).