The reason for the page executing doesn't affect the page cycle, the Load event always fires when the page is executed.
So, if the Page_Load doesn't run sometimes, it is because the page is cached and doesnt execute on the server. The page can be cached in the browser, in a router somewhere along the way, or on the server using server side page caching
Try disabling output cache and see if the problem still occurs:
<system.web>
<caching>
<outputCache enableOutputCache="false"/>
</caching>
<system.web>