The harder the constraint, the more dangerous it is.
It will surprise nobody that I too will err on the side of “allow nulls and check for them in your application code”. It’s cheaper to maintain and cheaper to evolve and those are the only things you have to optimize for until you reach massive scale.
