Yeah, you should be able to write something using those various pieces. Actually you could almost use that extra without any extra coding (I think). I haven't tested this, but seems like the following might work for a 2-level tree.
[[setPlaceholders? &ph=`
prev == prev.uri !! parent.prev.child-1.uri ||
next == next.uri !! parent.next.child.uri
`]]
[[+prev:!empty=`<a href="[[+prev]]">Previous</a>`]]
[[+next:!empty=`<a href="[[+next]]">Next</a>`]]
That would either get a link to the previous resource, or to the last child of the parent's previous sibling, or nothing. Same for next: either the next resource or the first child of the parent's next sibling, which lets you move between reviews by the same author and also between authors in the same alphabetical section (Author A and Author B). The only problem is you've got 3 levels, so it wouldn't jump between Authors A–B and Authors C–D. For that you'd need to be able to specify a 2nd backup parameter, which setPlaceholders doesn't currently support.
It wouldn't be hard to add; maybe I could do it later this week if you're interested.
Then you could do something like:
[[setPlaceholders? &ph=`
prev == prev.uri !! parent.prev.child-1.uri !! parent2.prev.child-1.child-1.uri ||
next == next.uri !! parent.next.child.uri !! parent2.next.child.child.uri
`]]
It's convoluted, but I think it'd work and be reasonably fast too, faster than using getResources on the whole document tree for sure.