Rich, your question is quite valid. However, in my viewpoint, which is admittedly mine and not shared by all, this is an invitation to trip on something later. The thing that I always consider is that when you use NULL as the 257th value for a byte with 256 states, what do you do when state number 258 is discovered?
There is one and only one reason to have a null "somewhere" and that is because you have never, ever visited that "somewhere" before. I.e., you have never instantiated the thing it represents. Once it has been instantiated you need to consider more positive ways to say "nothing there". How do I tell the difference between "never been there" and "there was nothing to see when I got there" ??? This can be a BIG difference in the way you want to treat something.
I have tried to be consistent on this point with any discussions that impinge on the topic. I come originally from an Operations, Security, and Operating Systems background where having a record with a NULL in it gets you gigged hard. Try telling a security officer "Oh, it is null - we must not have checked this feature." Wanna see your system get isolated on the network until your reports are complete? 'tain't fun to scramble under that situation. Or your OpSys crashes because one of the links led to a null. Or your paycheck is short because you cannot document what you were doing - the timesheet was NULL in some places.
If you study computer language theory, you note that a major portion of some languages that allow complex data structures (and Access record structure certain meets the latter criteria) are the INSTANTIATORS and DESTRUCTORS. That is, what code underlies the object that is the moral equivalent of a Forms_Load or a Forms_Unload event? (But for a structure...)
Pascal, Ada, C and its variants, and several other modern languages - and many languages derived from the ones I just named - include facilities for object-structure creation and destruction. Access has a "default value" option for fields as well as referential integrity for child-record creation, so at least you can see to the instantiation. Referential Integrity with cascading delete comes close to the "destructor" part of the facility. Every language I know addresses the issue except for assembly language, BASIC (pre-VBA), and a couple of older oddballs.
I guess I'm rambling a little bit, but I spent 35+ years in this industry learning how to not make quite so many terrible mistakes. Forgetting to properly define data elements is usually a big mistake. I now have lots of experience. You do know the Ambrose Bierce definition of experience, don't you? "Experience is what allows you to recognize your mistakes when you make them again."
You've seen me discourse on the "Old Programmer's Rules." You get to be an "old programmer" by following the rules. You get to be a FORMER programmer by not following the rules. (You get to be a manager by not knowing there were rules or thinking that they didn't mean anything ...

- there I go again, being unkind.)
In any case, tending to the creation and deletion of instances of your data objects is a non-trival operation that can be a great preventer of disasters. And the NULL element issue is a disaster waiting to happen.
In the final analysis, if you really wanted to use NULL for something, go right ahead. Just be initimately aware of the exorbitant price you pay in later code (or in later conversion to other platforms) if you were careless with NULLs.