@neounix Легенда. Спасибо за советы, очень ценю — вы отправили меня в путешествие по уничтожению спама. Я временно включил в Cloudflare режим «Я под атакой» (что остановило их регистрации — они создавали новый аккаунт каждые 1–2 минуты) и проверил логи брандмауэра Cloudflare на предмет используемых ими IP-адресов, увидев, что система проверяет/логирует каждого посетителя. Они действительно использовали идентичные user-agent.
Я добавил правило брандмауэра для проверки пользователей с таким user-agent и отключил режим «Я под атакой» в CF. Я не думаю, что многим невиновным пользователям приходилось проходить проверку, и это полностью остановило их спам-регистрации.
Затем я обнаружил функцию блокировки по номеру автономной системы (ASN), которую предоставляет Cloudflare, и настроил дополнительные правила брандмауэра для блокировки значительной части таких ASN, ссылаясь на логи блокировки по user-agent. Конечно, есть обходные пути, я уверен, вы о них знаете, но это дополнительные затраты ресурсов и усилий для них.

@codinghorror Я согласен с вами, что капча была бы полезна. Я бы сказал, что хорошей основной целью предотвращения спама должно быть увеличение общих затрат ресурсов для спамеров.
Капча способствует этому. Около $2 за тысячу решений reCAPTCHA (с использованием API для решения капчи, например, https://anti-captcha.com). Плюс дополнительные сложности, требуемые для их ботов.
Кстати: у Anti-captcha есть браузерный плагин для автоматического решения ваших капч, он работает хорошо и является приятным удобством. 
Адреса электронной почты обычно представляют собой ещё одну статью затрат ресурсов при массовом создании аккаунтов. Однако это не так, когда один пользователь может создавать практически неограниченное количество аккаунтов с одного адреса Gmail. Стоимость создания 1000 аккаунтов Gmail довольно значительна, поэтому спамеры часто прибегают к другим менее строгим провайдерам или доменам с функцией catchall. Это всё равно потребует от них ресурсов и легче идентифицируется как спам.
Я думаю, что здесь действительно работает принцип «чем больше, тем лучше». Ни одна отдельная защита не будет достаточно сильной; просто увеличение объёма ресурсов и усилий, необходимых спамерам в целом, — это шаги в правильном направлении. В идеальном случае спамерам должно быть сложнее спамить на форумах Discourse, чем администраторам блокировать такие атаки и массово удалять всё, что всё же проскакивает.
@itsbhanusharma Мне очень нравится возможность использовать символ «+», но именно поэтому мы не можем иметь всё и сразу, ха-ха. Было бы неплохо иметь возможность включить блокировку этого символа, если это необходимо для борьбы со спамерами.