Ich denke über die IS NULL Prüfungen nicht mehr nach.
Vielleicht ist das auch bei den Leuten in den Standardisierungsgremien so. Vielleicht ist es aber auch einfach eine Riesenkatastrophe, wenn das mal abgeändert würde.
Immerhin, es gibt noch andere Stellen, die man vielleicht kennen sollte. Z.B. die Handhabung von Leerstrings in Oracle, dort wird NULL daraus gemacht. Delphi "kennt" das aber, auch interessant.
An dem Beispiel im Stackoverflow Link von Jumpy kann man eigentlich ganz schön sehen, welchen Hintergrund Nullwerte bspw. bei Outerjoins haben. Wenn durch einen Outerjoin leere Textspalten also NULL Werte "entstehen", kann man wirklich nicht sagen, dass es das gleiche ist, wie ein Leerstring.
Eine andere Perspektive wäre die Frage, wie werden eigentlich schon im Programm (im Memory) Variablen initialisiert (oder auch nicht) und welchen Wert haben nicht initialisierte Variablen?
Hier ist noch ein Artikel mit ein paar weiterführenden Links (nicht nur zu NULL):
http://www.itte.no/en/2018/10/01/dis...and-databases/