I get that, but the solution is not "enforce it with static type checking", especially when the default is non-nullable.
In my experience nullability is a dynamic constraint and it's most often just passed through various functions, until it becomes an issue some function. Static null checking then just becomes madness.
Other representable values can also can be invalid inputs to some code, but we don't implement draconian constraints throughout the code to manage that.