Спасибо за ответы. Я сам несколько дней "курил" статьи по антиспаму. Вообщем "святого грааля", похоже нет. Тут тоже работает первое правило безопасности - 100% защиты не существует - существует лишь защита, делающая взлом экономически невыгодным.
Современные боты понимают html5, css3, js, от браузера по cookies и http_referer неотличимы, используют поведенческие модели серфинга, пул проксей, рекордер сценария, редактор, плеер... и ещё чёрта лысого в виде индусов, которые за 0,001$ разгадывают капчи-картинки.
Об этом выше писали.
Самый, на мой взгляд, эффективный в данной ситуации выход - использовать специфичность защищаемого сайта. Например, на русскоязычном велосипедном ресурсе можно задавать человеческие вопросы по теме - не просто "сколько будет 2+3", а "напишите одну из двух топовых фирм-производителей вело-трансмиссии" - и уже на бэкэнде на PHP сравнивать ответ. "Индусы" мало того, что русского не знают (а владеющие им "чернорабочие" - дороже), так и гуглить ответ не станут.
Время - деньги. Задавайте вопрос "эзоповым языком" - реальному посетителю не жалко будет потратить десяток секунд на разгадывание, а "индус-полубот" плюнет и пойдёт тратить время на другие сайты - даже осточертевшая гугловская рекапча со светофорами меньше мозг нагружает.
Насчёт сокрытия мэйл-адреса - я смотрю солидные конторы вообще не парятся - пишут в самом открытом виде - наверное переносят фронт борьбы со спамом на бэкэнд. Хотя желающие могут и здесь применить тот же эзопов язык - напишите "ivanpetrov на рамблере" - человек поймёт, а обычный бот-сканер пролетит.
Опять же, об этом уже написано.
Ну и про защиту форм тоже легко нагуглить - скрытые поля, тайминги и т.п.
И ещё одна мысля - придумывайте нестандартные имена ящиков. Полагаю, что admin@mysite.ru, mail@mysite.ru, feedback@mysite.ru и тому подобные очевидные имена боты сами перебирают на любом сайте.