In this example, block-1 will be evaluated against a Context
instance. Whereas block-2, block-3, and block-4 will all be evaluated
against the same Situation instance. Situation instances (situations) are
bound to a single context run; they are not shared across context runs,
regardless of their position in the test tree structure.

What is gained from doing it this way is:

variables, methods, etc. set in one situation do not contaminate any others

variables, methods, etc. defined during a context run do not stick with the
context itself

which means that testing state is independent of the test definitions
themselves