It probably explains why different runs vary so widely, I always thought it was other things going on in the OS, never really thought about the caches, etc.
Those all fall under locality of reference, btw. But yeah cache and branch prediction play a huge role in the list.
One thing that stung me in the past was OS scheduling.