So how would you represent an absence of a value? In an enum that'd be easy, but there is a semantic difference between an empty string and a null string.
Or would you propose sending a boolean to indicate null as well as a string in a data type?
See the Option/Maybe pattern, which uses sum types rather than unions or sentinel values.