Für Textfelder ist NULL dagegen ein eher sinnloser Wert, weil gegenüber dem Benutzer in der Oberfläche nur selten ein Unterschied gemacht wird zwischen "Textstring ist der Leerstring" und "Textstring ist nicht vorhanden". Man müßte ja (beispielsweise) jedem Textfeld noch eine Checkbox hinzufügen, die man anklicken muß, wenn der String NULL sein soll. Leerstrings funktionieren in der Regel perfekt.
Dein Beispiel mit den Temperaturen ist OK, dasselbe gilt natürlich auch für Datumswerte oder Fremdschlüssel, allerdings hat auch bei character-Feldern NULL seine Berechtigung, auch wenn es z.B. bei der typischen Kommunikationsdatenerfassung für die erfassenden MAs oft das Problem gibt "Heisst NULL jetzt nicht erfasst (soll ich nacherfassen?) oder Information nicht verfügbar?".
Strenggenommen könnte es sogar verschiedene NULLs geben, aber solche Überlegungen dürften in die Klapse führen, also sollte man NULL vermutlich als "Nicht erfasst" verstehen. Sicher bin ich da aber nicht.