Also, this works with pojos and primitive values. What happens when you add class instances, relationships, children, etc?
For example in a project I was working I had geometrical figures in my reactive data model. With classes I could simply do:
rectangle.getArea()
With MobX this was super simple to implement. If I wanted to change the position of the rectangle I would simply modify the x and y observable properties.