Observe just makes making bad apis easier imo. I don't care if react can detect state changes, I want to detect state changes by searching for setState.
One reason for the explicit method may be that React does an internal optimization where it batches state updates together. Two calls to setState can result in just one render.
No reason why this wouldn't be possible with Observe, the first call schedules a re-render and the next one doesn't do anything since there's already a re-render scheduled.
A possible issue is setState doesn't transition the object's state, it creates an async future/pending state transition (and multiple state transitions can be batched). Object.observe can only operate reactively, the state has already changed and the next dereferencing of state data will see the "next state" instead of the "current state".
http://www.html5rocks.com/en/tutorials/es7/observe/
Also you could just re-render whenever any event happens, which is probably when your state changes anyway.