Antes de tudo, as cadeias nula e nula nem sempre foram tratadas da mesma forma pelo Oracle. Uma cadeia nula é, por definição, uma cadeia que não contém caracteres. Isso não é o mesmo que um nulo. NULL é, por definição, a ausência de dados.
Há cinco ou seis anos, a cadeia nula foi tratada de forma diferente da nula pela Oracle. Enquanto, como nulo, a cadeia nula era igual a tudo e diferente de tudo (o que acho bom para nula, mas totalmente ERRADA para a cadeia nula), pelo menos o comprimento (cadeia nula) retornaria 0, como deveria, pois a cadeia nula é uma cadeia de comprimento zero.
Atualmente no Oracle, length (null) retorna null, o que eu acho que está bem, mas length (null string) também retorna null, que é totalmente ERRADO.
Não entendo por que eles decidiram começar a tratar esses 2 "valores" distintos da mesma forma. Eles significam coisas diferentes e o programador deve ter a capacidade de agir de cada um de maneiras diferentes. O fato de terem mudado sua metodologia me diz que realmente não têm idéia de como esses valores devem ser tratados.