@webvitaly I think the point of failure (introduced in v2.3 to v2.5) is with the following line:
if (is_singular() && comments_open() && get_option('thread_comments')) {
Specifically this unnecessary part of the conditional check:
&& get_option('thread_comments')
WordPress’ “Discussion Settings” has an option to enable or disable threaded (aka nested) comments. For anyone who has disabled this setting and opted for a flat comment display, the anti-spam.js script will not be enqueued. This can be confirmed by enabling/disabling that setting and you’ll see the anti-spam.js appear then disappear within the rendered HTML source. Also, when the script isn’t loaded, the hidden “year” box will show.
Hope this helps. Anti-spam has been great for me and I’m still on v2.2. Had I upgraded to 2.3-2.5 it likely would have worked great as I have threaded comments enabled.