BTW, another question: when old entries are removed from IP cache, both ham and spam entries are deleted or only spam?
Only returning IP's that were previously identified as spammer and who's connection was terminated will update their last seen date in the caching system. Every day, once a day, a routine runs to remove the IP's who's last seen date is X amount of days older than the date the routine runs.
AFAIK, the SQL used deletes both spam and ham (avh-fdas.public.php, line 112):
$result = $wpdb->query($wpdb->prepare("DELETE FROM $wpdb->avhfdasipcache WHERE ((TO_DAYS(%s))-(TO_DAYS(added))) > %d", $date, $days));
Since cached spam entries are used to filter comments, shouldn't they be remain in the cache?