Queries involving the antispam_counter table assume that there is one entry for each day. This is only true if it is called at least once a day. A patch would need to perform database specific date range queries which are not directly supported by Drupal's database abstraction layer. Another option would be to calculate start and end dates for the queries in PHP and use these for a between query which may simplify the code needed.

I'd like to work on a patch but would like to have feedback on which way to go first.