Yeah thats really kewl.
I do have a feeling I know how it could be done though, if its done that way or not:
With a good editor, you know where the picture appears inside the empty frame?
That could have been done in the program after the footage was taken with all the 3D options for pictures nowadays on these programs.
You'd first get the footage onto computer, and as he makes faces where the picture would be took, you'd take a snapshot using the computer, and then import this picture into the program of his head.
You could then stretch and scale that picture to fit over the frame when needed in any way possible, and animate it while the empty frame moves into the final position onto the table and wall for example so that it follows the empty frame exactly.
Because you took a snapshot while he is in that position, you know you'll get the right look when it leaves his head.
So thats a way it could have been done, and I'd choose that method if I were to do it.
You could then simply delete and manipulate in the program the pictures when the empty frames go back over his head.
Watching it again, I have a feeling it was done that way, hehe
Makes me want to do a test shot of it now and as I'm sure some of you will agree after reading this, it seems much simpler, huh?