You usually normalize a database to avoid data redundancy. It’s easy to see in a table full of names that there is plenty of redundancy. If your goal is to create a catalog of the names of every person on the planet (good luck), I can see how normalizing names could be beneficial. But in the context of the average business database is it overkill?
(Of course I know you could take anything to an extreme… say if you normalized down to syllables… or even adjacent character pairs. I can’t see a benefit in going that far)
Update:
One possible justification for this is a random name generator. That’s all I could come up with off the top of my head.
Database normalization usually refers to normalizing the field, not its content. In other words, you would normalize that there only be one first name field in the database. That is generally worthwhile. However the data content should not be normalized, since it is individual to that person – you are not picking from a list, and you are not changing a list in one place to affect everybody – that would be a bug, not a feature.