Maybe it is something domain-specific, but I virtually never seen this in practice. Pragmatically, most software out there has a “happy path” and a “something went wrong path”. We spend lot of time with customers, during design and implementation to work out behavior of the former, happy path, and we don’t usually spend much time designing behavior of the latter path. It has to fail cleanly and, maybe, retry. Requirements on more varied behaviors for this case are rare, that is to say, I’ve never seen them in practice.