Out of curiosity I looked at the sources, well the source, it is a single, horrid to read, file.
I found an idea I never saw before.
When null search fails high we simply return beta, eventually after zugzwang verification search.
In this case, before to return, the null value (the result of the null search) is saved in the TT table as a LOWER BOUND type node (as it should be) but with NO associated move (as normally happens only for upper bound nodes).
I think the logic makes sense: null search is just a normal search but on an undefined move, on an absolutly dumb move, if we anyhow fail high it makes sense to store we are in a cut-off type node and because we don't have searched any specific move we store MOVE_NONE in the hash table.
Does anyone have ever heard of such idea before ? For me it is new, but I am not in this field from a long ago
