I think the main point here is that key present with a null value and key not present are two distinct states and squashing them down into one loses that information.
Right, but my main point here is that if your business logic cares about the distinction, you've created a pointless footgun 99% of the time. If you care because you're worried about formatting issues or string corruption, there are a million better ways to check for those.