for the reason that all reference objects either "null" or "non-null". empty string is non-null, so... it's C leftover actually. there arealot such leftovers in D.
For pointers it's logical, but it doesn't work as good for slices: they're better thought of as either empty or non-empty.