The Allow Zero Length property, when switched on, permits a field to contain a zero-length string ("") as value. This should be distinguished from the Null value, which allows fields to be blank and is permitted when the Required option is switched off.
The basic difference between a field that has a null value and one that contains a zero-length string, is that the former field contains - and has contained - absolutely nothing, that is no spaces have been entered, no deletions taken place, etc., whereas the latter may be empty to the eye but in fact has at one time contained data, even though it has since been deleted.
Hence, as you would expect, the two types of formatting cause fields to behave in different ways. Likewise, the various format combinations, using both the Required property and the Allow Zero Length property, also have different effects, as shown below:
Allow Zero Length and Required both set to No: Null value stored when Enter or Spacebar is pressed, but zero-length string is not allowed (i.e. you will not be allowed to delete a existing value, although you will be able to replace it)
Allow Zero Length and Required both set to Yes: Null value not allowed (i.e. when you press Enter), but zero-length string stored when you press Spacebar or enter a zero-length string (i.e. as when you delete an existing value)
Allow Zero Length set to Yes and Required set to No: Null value stored when Enter or Spacebar pressed, and a zero-length string stored when it is entered (i.e. as when you delete an existing value)
Allow Zero Length set to No and Required set to Yes: Null value not allowed (i.e. when you press Enter or Spacebar), and a zero-length string not accepted (i.e. as when you try to delete existing value)
See also: