CallbackProperty returning the same value

Gents,

  1. Is Entity API smart enough to not update an entity if all CallbackProperties return the same values (and nothing else changes)?

  2. Should it be the same reference or value?

  3. In general, if a property changes rarely it is better to use ConstantProperty and reassign it upon a change. If a property changes often it is better to use CallbackProperty. Is that correct?

  4. Can you give a rough estimate on where an edge between “rarely” and “often” lies? (I know, it depends, but, still, your guess is valuable)

Thank you.