Why do we not store names in a separate table?
No, it is absolutely not proper normalization to move a name out to another table.

Normalization reduces redundancy based on functional dependencies, not based on coincidental repetition of data values.  

Let's say there are 100 Joe Smiths in your database.  If you move the name "Joe Smith" out to another table and have 100 records point at this name, what happens when one of the Joe Smiths decides to change his name to "Bob Smith"?  Unless they all change their names in unison, you can't work with the data that way.