We use a mix approach.
In most case, we do OTS as stage 1 and then developer can merge their individual branch to develop branch.
And then later reviewer will do a in depth review independently.
For complex/critical logic kind of code, on the other hand, the reviewer will try to think over a general solution before look at the code. And then trying to poke around the code to find flaws.