Для (1) это действительно зависит от того, сколько информации вам требуется для того, чтобы учетная запись считалась зарегистрированной. Например, переполнение стека не запрашивает какую-либо информацию от IdP; он просто назначает случайное имя пользователя (user12345) - тогда пользователь будет заполнять свою личную информацию (и зарабатывать значок) всякий раз, когда ему / ей будет удобно.
Не то, чтобы это была лучшая практика, так как пользователи не выиграют от связывания учетных записей, избегая ввода ее / его имени дважды. Опять же, это действительно зависит от того, что вы действительно хотите знать о пользователе, и сколько выдумки вы готовы внести в процесс регистрации, чтобы получить эту информацию.
Для (2) это еще большая проблема. IMO функция add OpenID в Stack Overflow достаточно ясна, чтобы рассказать людям, что она делает. Вы можете настойчиво запрашивать пользователя, когда обнаружите, что два OpenID возвращают один и тот же адрес электронной почты, но я не уверен, что это хорошая идея и хороший UX.
Рекомендуется отделить имя пользователя / идентификатор пользователя вашего сайта от OpenID - небольшие IdP-серверы OpenID могут когда-нибудь закрыться, и вы действительно не знаете, из-за чего ваши пользователи не могут войти в систему.