Человек вставляет имя, оканчивающееся на e с последующим U+0301, а позже вводит то же имя с U+00E9. В этой гипотетической форме такие написания канонически эквивалентны, но могут быть разными строками.
Я бы сохранял исходное написание для отображения и получал ключ NFC для поиска. Человек видит то, что отправил, а поиск не различает эти два написания. Цена такого решения состоит в поддержке двух представлений и ясном выборе нужного для каждой операции. В JavaScript normalize("NFC") явно обозначает преобразование, но аннотация TypeScript string не подтверждает, что оно произошло.
Разумно ли принять это за основу поиска по отображаемому имени, если продукт отдельно решает, могут ли совпадающие имена принадлежать разным аккаунтам? NFC не выбирает такую политику идентификации. Нормализация совместимости и свёртка регистра были бы отдельными решениями, а одна нормализация не предотвращает визуально похожие имена, которые легко спутать.
Хочется сохранить написание человека на экране, не позволяя одному производному ключу незаметно решить, кто этот человек.