I don't believe this is right. The optimization as described does not preserve the correct program behavior unless you have a guard to do the null check anyway to fallback to the slow path
edit: just read kaba0 answer below and in fact it's possible via tlb miss, really cool
edit: just read kaba0 answer below and in fact it's possible via tlb miss, really cool