I just tested the Facebook Authentication on the try.discourse.org site and Facebook still works if you disallow sharing email in the Facebook Permissions dialog.
The Discourse sign-up just asks the user for their email instead of getting the email from the OAuth provider.
Discourse could still do the same thing for Reddit where it just asks the user for their email address as when the API doesn’t return an email address.
Reddit is different in that it never returns an email address where Facebook will provide an email address unless the user decides to not share it with Discourse but otherwise the handling of an OAuth provider that doesn’t return an email address seems to already be a case that is handled by Discourse.