Why do you assume that one has to go through "all" 4.2 billion hashes to successfully mine a block? After all PoW mining is a probabilistic affair.
Actually I'm assuming you have to go through all of them multiple times not just once and the reason is because I keep changing the header and hash it with all nonces and don't get any results. For example as I said above if the block time was 1231470172 instead of 1231470173 no acceptable hash could have been found.
Obviously I haven't tested that many cases due to having only 1.7 MH/s with 1 core, to talk probability and this is just an assumption based on small number of tests.