なでしこの仕様?

なでしこは文字列処理にそのパワーを遺憾なく発揮する言語ですが、その文字列の取り扱いに変な仕様があります。
それは長さ0の文字列を取り扱えないというものです。
例えばC言語だと、

#include
#include

int main(void){
char *a;
a="";

printf("%d\n",strlen(a));
printf("%p\n",a);
return 0;
}

だと、

0
0040A128

みたいな実行結果を得られますが、なでしこで、

Aとは文字列
A=「」
Aのバイト数を表示
POINTER(A)を表示

とすると、

0
0

となり、変数のデータ領域へのポインタはなにも指していない状態となります。
つまり、なでしこで変数に「」を代入することは、ポインタ変数へのNULLの代入と見ることが出来ます。また、その変数の持つデータを解放するともとれます。
これによる利点は、空配列でも空ハッシュでもすべて「」で比較することができる(「」はNULLなので何でも比較可能)事でしょうか。
欠点としては、もし文字ポインタを引数にとるDLL関数があり、そのポインタはヌルを許容できない場合で、どうしても長さ0の文字列を与えたい場合、「{\0}」という風にして渡さないといけないということぐらいでしょうか。
まあ、このくらいは無視できる程度ですかね。