The fact that the selection changes while the DOM is mutated during an editing operation seems like an implementation detail that we should not expose to clients. Either we should suppress them, or provide some additional context in the notification about the kind of selection change that has occurred: manual change by the user, a change that's a by-product of an editing operation, etc. <rdar://problem/9347457>
After talking with Levi and Ryosuke, I realize that these selection change notifications may be important to other WebKit clients besides mine. They signal real selection changes due to DOM mutation. I'll just ignore them at the client level.