Speaking as an X.500 implementor, I don't see any technical reason why string syntaxes have to have a non-zero length. I guess the X.500 designers thought zero-length strings weren't particularly useful so they disallowed them.
Speaking as someone who writes ldap clients in perl, java and other modern languages (i.e not c) I have to disagree. Empty strings, while possible, create nothing but headaches.
MVH leifj