I guess my thought was that in many places we know that the string we create contains no NULL (make_shared_string/make_shared_binary_string). And when we do check for NULL we might as well save that result. So unless it is easy to add a check during the hashing we could use two bits to save the result of a NULL check, which nicely enough will be shared as strings are shared. But perhaps someone can come up with a better use for these two bits...