Это древний холивар естественный ключ vs суррогатный ключ.
А так зависит от задачи.
Если пользователь жестко привязан к email, то почему бы и не завязаться на него, как ключ.
Если нет, то id-ник проще.
Вопрос поставлен не правильно.
Свои exception это ни хорошо и не плохо.
Вопрос в другом - "Зачем?"
Какой смысл несут свои исключения.
Как только вы ответите на этот вопрос, вам будет понятно "хорошо это или плохо"
Вы собираетесь решать задачи на графах?!
Тогда вам просто надо выбрать одно из нескольких представлений графов
(Хранить можно и РСУБД)
Но все равно в пределе у вас может оказаться NP-полная задача.
Тыды ой, ничто не поможет. :-)