During experimentation with phar.cache_list using php 5.2.13 and pecl/phar 2.0.0, I found some interesting details.
It seems that if any phar in the list of phars to cache fails to be read properly during module initialization, none of the phars in the list will be cached, including ones that had already been successfully read before the failure.
Additionally, phars without metadata will always fail to be pre-cached properly due to what seems to be a bug in the phar module that re-reads the length of the metadata from the next byte if the metadata length is 0. Adding any metadata resolved the problem for me.
So make sure you are pre-caching phars with metadata, and make sure you don't put a bad path/file in the list.