True that the "free" or "registered user" rules are updated much less frequently than the "paid" or "subcriber" rules are. The subscription rules are generally updated daily except across weekends.
I can definitely report the behavior with the cron job rules update is consistent if you logout of the GUI and wait for the job to run. Apparently the various values from the config.xml file are normally stored in an array variable called "$config" within the GUI. The cron job now uses the same PHP page to perform its rule updates as the GUI manual method does, and the values are supposed to be available within that "$config" array variable (it's a global array, apparently). Looks to me that once you log out of the GUI and any cached info expires, the cron job is then left with no values in the "$config" array. One of those missing values is the Oinkmaster Code to use for the rule download. With that parameter missing, the rules download does not happen.
It seems that if you change the time the cron job is to run, and you hold an active web session open during the scheduled cron run, then everything works fine. My guess is this happens because the "$config" array is still populated with an active GUI session.
This will probably need Ermal to take a look and see if it can be fixed.