Well, the changes cannot occur until the operation is committed.
See the Model#start_operation
and Model#commit_operation
method documentation.
But this is not to say that there are not bugs in the API. See the tracker as @dezmo said.
Also, there is a forum topic on observer callbacks out of order that resulted in a formal tracker issue being logged. (Observers firing sequence)