I say this as somebody who has used all three of those instances -- it is an inconvenience to create an account for each project you send patches to (or even just file a bug).
2. What does the registration process look like?
OAuth helps with federated authentication. It's not federated registration.
2. Click “sign in with provider” log in as normal, or just get logged in if you have a cookie.
3. These are functionally identical, it’s 2 clicks to create an account on gitlab if you use an external identity provider.