Another reason : you can send ops over the wire rather than data. For example, you can send "add 7 to x" when the user makes a change rather than "set x to 21". Then you use the same code on server and client side to execute the ops.
If you structure your ops to be reorderable and composable you can get nice stuff like multi user editing, arbitrary undo, multi data centre synchronization, etc.
See the google docs papers for more details.