So a model change event is triggered in the built-in set?  This seems to be a likely scenario:

* A function triggered on the model change invokes `model.save_changes` to sync
* The buffered diff wouldn't be updated, so the model would get confused about what to sync

Am I not understanding something in proposing this scenario? (it's been a few weeks since I looked seriously at the code...)