É assim no SQL (como uma linguagem lógica) porque null significa desconhecido/indefinido.
No entanto, em linguagens de programação (como C++ ou C#), um ponteiro/referência nulo é um valor específico com um significado específico - nada.
Dois nadas são equivalentes, mas duas incógnitas não. A confusão vem do fato de que o mesmo nome (null) é usado para ambos os conceitos.