How about this option:
Emuth, female and Olmul, male, get married and have baby, who they name Urist after Emuth father. Since the fortress currently does not have another Urist, this dwarf is simply "Urist."
A few years later, a redheadded fisher named Urist immigrates to the fortress. Now we have to differentiate between the two. So, we decide from several attributes to create bynames for Urist and Urist: Urist son of *father*, Urist *physical-attribute*, Urist *profession*, etc. How this is decided might be random: baby Urist might become known as Urist Olmultilat (Olmul Child), while the newly immigrated Urist might become known as Urist Angrazes (Red Hair).
Eventually, Urist has a child, who he decides to name Urist after his grandfather (or himself, who knows). Since there are already two Urist's, he needs a byname: he becomes Urist the Younger. And so on.
It would be nice if by-name decision wasn't too heavily weighted towards any one thing by default, so that I don't end up with half my fortress using the byname "Fisher." However, different civs might weight different byname types differently, like a human civ that likes to give people patronyms.
For funzies, if several generations of a family have the same byname, maybe it becomes a surname, and becomes inheritable by their children. When surnames conflict, resolution can depend on civ-level randomness: the humans might have the father's surname take precedence, the elves may have the mothers, the dwarves may make male children inherit from their father and females inherit from their mother, and the goblins may give them both names. (Something would need to be added to prevent names from getting too long.) Or whatever. It might not even be consistent from one same-race civ to the next. Surnames might become quite common in longer world-gens, especially if entities start giving their children intelligently-decided given names based on relatives, beliefs or similar.
Important dwarves (nobles, or those who reach Legendary skill) might start a clan: all their descendants get "of clan Foobar" added to their name. Someone elsewhere has discussed clan membership when they conflict; it could follow similar rules to surname inheritance.