Quando o Discourse atua como provedor de identidade, ele salva os IDs de usuário externos?

Não salva, então você precisará de algo personalizado.

Eu me pergunto se faria mais sentido lidar com isso em seu aplicativo Rails, já que ele conhece o ID do Discourse de um usuário?

Você poderia configurar uma rota como /profile-by-discourse-id/:discourse_id que procura o usuário relevante com base no ID do Discourse e, em seguida, redireciona para o perfil do usuário no aplicativo Rails.