Проверено: Python 3.10.6, Unicode 13.0.0.
import unicodedata
values=['Проект А','Проект\u00a0А','Проект А ','Проект A','ёлка','е\u0308лка']
clean=lambda s:unicodedata.normalize('NFC',s).replace('\u00a0',' ').strip(' ')
print(len(set(values)))
print(len(set(map(clean,values))))
for s in values:
    print(repr(s), [f'U+{ord(c):04X}' for c in s])
Ожидается 6, затем 3. Латинская A остаётся отдельно от кириллической А.
Правило не разрешает удалять реальные записи без проверки смысла.
