Yes. The viewer has two states; let's call them `visible` and `hidden`. Until now, the `show()` method was always called in the `hidden` state. Not hiding the viewer here would mean calling `show()` in the `visible` state (to pass in the new annotation and position parameters). This might work with the current viewer implementation, but since this usage of the `show()` method is not part of the (unwritten, but assumed) contract defining the interface of the Viewer, I did not want to introduce a new requirement for alternate/future viewer implementations to support this.

Anyway, there is no visible flickering, because the hide/show is happening before the browser does any rendering, so I don't see any harm here.