The question is not how to represent null, but when extracting a integer from its boxed container, if the boxed container is missing (the reference is null), then should the result be zero (a reasonable default) or should it cause an exception (also a reasonable expectation).
This has nothing to do with the historical representation of a null pointer as zero.
Now, granted, the whole boxed primitive idea is a kludge to work around a lack of foresight in the original language design.
(an aside: I wonder how much performance will be lost through this autoboxing technique, especially compared with eliminating primitives altogether. I suspect (without proof) that the no-primitives technique done right would have be faster overall).