Very good article about code review.
There is another advantage of reviewing the senior's code by a junior: the senior can receive a feedback, if their brilliant code is not understable by a junior. It can be solved by several ways, for example:
* Explaining past stories, which are solved by extra codes (why it's needed).
* Taking a short presentation for other team members, how it works, by the junior (in order to increase their confidence)
* Changing the code to use well known solution, instead of brilliant.
* Refactor the code to use that solution with composition (for example: decorator), so only a function usage must known, not the internals.