Когда Discourse выступает в роли провайдера идентификации, сохраняет ли он внешние ID пользователей?

Нет, поэтому вам понадобится что-то кастомное.

Интересно, не имеет ли смысл обрабатывать это в вашем Rails-приложении, раз оно знает ID пользователя в Discourse?

Вы можете настроить маршрут вроде /profile-by-discourse-id/:discourse_id, который будет находить соответствующего пользователя по ID из Discourse, а затем перенаправлять на профиль пользователя в Rails-приложении.