v4: Replace private flag with an explicit boolean.
This is now effectively exchanging one boolean flag for another, but I think it's still overall an improvement.
As @rbernon says in !8095, understanding when `frame` becomes true requires "having to track down 6 different calls sites to figure under which condition that additional parameter can be set to a 1/0 constant, based on seemingly arbitrary decision as it is hardcoded in most of them."
This patch makes the propagating behavior explicit: RDW_FRAME dictates whether frame is included for invalidating case, and "nested update" status for validating case.
For background, the motivation for removing the boolean flag came from (again quoting @rbernon) "aiming at reducing the number of parameters overall in a MR that added two more, and I though it would be better to remove one seemingly independent parameter that actually isn't" (the MR being !8013).
I still think my patch is in the right direction in this aspect: my `nested` *is* an independent parameter, unlike `frame` which may or may not depend on `RDW_FRAME` depending on yet another flag. Adding more boolean parameters, if ever needed, can be achieved by simply replacing `nested` with a bitfield.