Checking/updating secondary tables when saving entities can be costly. Much of this could be avoided if we could use information what exactly changed about an entity, instead of just saving all information about it afresh, as if it did not exist before.
Information about what exactly was changed about an entity already exists further up the stack of the save operation: EditEntity has a diff, and even before that, we often have ChangeOps. If we could loop this information through to the point where it could be used to optimize database access, that would be quite helpful.