Посмотреть как сделано в других серверах и ничё не придумывать
Ну не факт что у других правильно. (напрмер говорят что в C++: int i = 5; int j = ++i + ++i; j == 14, а нодо бы 13 - сам не проверял).
В общем то прикиньте зачем может понадобиться такое поведение как сейчас, т.е. что нуллы считаются разными значениями? Я себе не могу представить такого случая. Такие записи всё равно скорее всего будут дополнительно различаться по какому-то не нулловому полю. А вот логика с IS NOT DISTINCT FROM по-моему вполне может быть полезной.

