Creo que este problema podría solucionarse añadiendo
return if user.silenced? || user.suspended?
a
y
Por cierto, tengo curiosidad por saber por qué la comprobación de permisos para can_post_anonymously no se implementa dentro del módulo Guardian.