For those who have to design systems to properly accommodate most of these "falsehoods", don't reinvent the wheel. Take a look at how the HL7 CDA R2 format handles names for healthcare data interchange.
Each person can have multiple different names tagged by use (legal, maiden, alias, etc). Names can be composed of multiple different parts (prefix, suffix, given, family, or just free text). All of Unicode is supported. And names can also be NULL in various different ways (which is distinct from just blank or missing).
http://www.hl7.org/implement/standards/product_brief.cfm?pro...
Each person can have multiple different names tagged by use (legal, maiden, alias, etc). Names can be composed of multiple different parts (prefix, suffix, given, family, or just free text). All of Unicode is supported. And names can also be NULL in various different ways (which is distinct from just blank or missing).