A implementação de trechos de text/discourse-plugin em temas parece ser a seguinte:
Não estou vendo nenhuma menção direta a uma instância this aqui, o que implicaria que não está relacionada ao this implícito do JS, nem pode ser o api saindo do escopo, já que o trecho é colado ali.
Esse exemplo mínimo realmente funciona, ou seja, não é um problema com o código omitido?
A propósito: o global Discourse e seu campo currentUser também poderiam ser substituídos por api.getCurrentUser() aqui: