In reply to @isofruit "Mostly asking because off": I am actually not sure about the performance difference here either. However there are still at least 2 other reasons why diffing is required: (1) GTK's setters often also perform other actions besides setting the property (I believe this is the case for `Editable.set_text` e.g., which if I remember correctly can also change the selection and cursor position) and (2) because viewables which do not have a corresponding GTK widget also need to maintain state (→ we need a system which work both when there is an underlying GTK widget and also when there isn't one).