GTAOPass probably has this discontinuity regardless of whether it’s in a viewport or not, since it’s a screenspace effect(?)… i.e. there isn’t enough information at the edges for it to radially sample for occluding.
You may just not usually notice it in regular rendering context since the artifact is at the edges of the screen.
It’s also possible that the effect renders some overscan before resolving just the visible interior rectangle (in a full window context), but this may break down when a non full viewport is used since it can’t safely render outside the viewport. If that is the case, one possible solution would be to render your viewports to a smaller viewport sized renderer (or rendertarget), and then drawImage the result into your final canvas. This would avoid having to set the viewport/scissor etc, as each viewport would be rendering to a full target.
In my personal opinion though, the issue isn’t super noticable anyway unless you know what you’re looking for… so maybe just don’t worry about it?