Maybe it shouldn't need to update the level layouts?
Like if you change an object, it could just store the information in its own object file. Why does it need to instantly modify the layouts when all you've done is change an object?
So if you rename a variable, the layouts wouldn't care because the events are still referencing the same hidden variable ID.
And if you removed a variable from an object, then when you open a sheet and C3 notices that a variable is missing - it would then just remove the variable references as needed. So you just wouldn't use that sheet if someone else was working on it.
Therefore, there's no conflicts with collaboration in the situation you describe.