For eg: if there are multiple emails from same domain name, then domain name column will have same entry multiple times.
When domain is moved to sub table, main table still has duplicate entries, in form of foreign keys, while domain table has unique entry for each domain name
while main table did not have any such guarantees, so, there will be a lot of indexing and duplication in atleast 3 (of 4 sub tables)
Moreover, indexing would be much faster and efficient as there are only unique values in sub tables