MobX started for two reasons: 1) existing state management solutions weren't fast enough 2) we wanted to write simple, straight forward code. Imho the project succeeded in both goals.
I touched the subject of performance shortly on the React Amsterdam conference, see this slide (video will appear soon) or this tweet with stats that compares performance with Redux.
In short: MobX very efficient; the number of observers is not influenced by the number of derivations, but by the number of active reactions (like, amount of visible components). Derivations will tend to go asleep if not used by some reaction. Fine grained observability allows for much more optimizations that coarse grained immutable state or manual subscriptions. Since in MobX subscriptions are under the hood, observers are not established by using callbacks, it is just a simple object pointer in an array. These things make it all very efficient.