1) Не вызывает сомнений и то, что должен делать.
2) Идентификатор, вероятно, короче, и его поиск намного быстрее. Идентификатор дает немного больше информации о вашей системе; если вы знаете, что сайт вообще использует серийные идентификаторы, и вы знаете, что это за один из них, это почти так же хорошо, как знать их все, тогда как знание одного имени пользователя не говорит вам имена других пользователей. С другой стороны, имя пользователя больше соответствует психологии пользователя и может служить подсказкой для пароля.
3) Оба имеют крайне незначительные падения, как описано в пункте 2.
4) Я бы использовал ID.