But that means I have to pre-process data lists that just happen to contain empty strings so that they won't disappear on me.
Huh? An empty string already *has* disappeared on you. ;-)
> This seems to violate least surprise.
I'd be much more surprised if an empty string *didn't* disappear. After all, you wouldn't expect:
$str1 = "nothing" . "to" . "see";
to be different from:
$str1 = "nothing" . "" . "to" . "" . "see";
Damian