La implementación de los fragmentos de text/discourse-plugin en los temas es aparentemente la siguiente:
No veo ninguna mención directa de una instancia this aquí, lo que implicaría que no está relacionado con el this implícito de JS, ni tampoco puede ser que api se salga del ámbito, ya que el fragmento se pega allí.
¿Funciona realmente este ejemplo mínimo, es decir, no es un problema con el código omitido?
Por cierto: el global Discourse y su campo currentUser también podrían reemplazarse con api.getCurrentUser() aquí: