Michel wrote:By scenario I mean primarily: what kind of root position are we searching, and what criteria determine whether some behaviour is better than other behaviour?
It goes without saying that
everything we are discussing is for positions which have already been determined to be won/lost and where you are looking for a mate score.
Not really. Marco is not making this distinction.
The two scenarios where you should fail hard I think are as follows
(1) Zero window search in TBwon position
beta>TBWIN
fail low with bestValue<TBWIN
return alpha (motivation: you want an upperbound but TBWIN is a lowerbound).
Depends on how you look at it.
Another point of view: TBWIN is the exact score of a TBwon position at depths insufficient to find mate.
With this point of view, you may return TBWIN.
Of course this exact score is not the exact score anymore in the next iteration (if the same position is searched with higher remaining depth), but that is normal in iterative alpha-beta.
Anyway, if we are talking about a TB won position, then it is difficult to talk about "seeing improvements" by switching to fail hard. Current SF either does not search TB won positions any further (in case the root position is not yet in the TBs) or searches such positions without probing TBs (in case the root position is in the TBs).
The only exception is TB root position and DTZ not available. In that case, current SF filters root moves with WDL and searches for a winning zeroing move (so probing and taking the TB cut after each move that resets the 50-move counter). This certainly does not give nice play and also its winning chances can be improved (in a position like a winning KBNvKN).