To answer your question "1) Should the Cached Scripts retain in cache so the number should always increases?" - the number does not always increase because of your eaccelerator.shm_size and eaccelerator.shm_ttl settings. You have 64 MB allocated for the cache and a time-to-live of 3600 seconds (1 hour). When eAccelerator doesn't have enough free shared memory to cache a new script it will remove all scripts from shared memory cache that haven't been accessed in at least shm_ttl seconds. In other words, when a script has not been used for an hour and the memory is full, the script gets removed to make room for new scripts to be cached. That is why the number of cached scripts keeps changing.
Tuning those two settings can make a significant change in performance I have discovered over the past two weeks with APC.
To answer your question #2...the reason you never see anything in the cache directory is because of eaccelerator.shm_only = 1 says NOT to use it, to ONLY use the shared memory. Default value is "0" which allows eAccelerator to use disk and shared memory cache for scripts. I would think the way you have it set would be faster than using a spinning hard drive as a cache because it is MUCH slower than memory, even if you have to remove something before the new script can be cached.
Hope this answered your questions,