When OBSERVE is used with multiple keys, the keys are encoded into the response like so:
key = "bar"
From what I've seen (see my comments on OBSERVE wiki), the server will respond with NOT_MY_VBUCKET if any of the keys mentioned therein are not controlled by the server (as either master or replica). When a configuration change occurs (which it very well may) there is no guarantee that all the vbuckets encoded into the request will still be hosted by that same server.
This is specifically for 'multi-observe'