Hi,
The first and second calls are chained. So are the third and fourth. And so the former explanation applies to both.
The 5th call does not return a value (a void call), and therefore does not need a call to recorder.Return. Therefore, you don't get the exception.
If Foo2 returns something (e.g. bool), you will get an exception.