*) parece que não faz sentido ter ambos os grupos, mas se você tiver uma subcategoria que permite apenas o specialgroup, você deve adicionar esse grupo à categoria pai também, porque o Discourse não entende que trust_level_0 é sempre um superconjunto.
Consegui identificar o problema, obrigado pelos passos para reproduzir… Acho que isso deve corrigir os problemas do tópico vinculado também.
O problema era que estávamos ignorando o fato de que todos os usuários fazem parte de trust_level_0 e logged_in_users (e default_invitee_trust_level) após resgatar um convite… O convite exigia que os convidados fossem adicionados a esses grupos durante o processo de convite, mas isso não é possível, pois são grupos automáticos.