My previous statements were not entirely correct. Relinking is done by the stated method, but the 'Unlinked' setting is actually read from a field in the SDESC.
That field is declared as:
/// True if this Sim is only available for Memory Reasons
public ushort Unlinked
The code that fetches that value can be found further down:
reader.BaseStream.Seek(startpos + 0x156, System.IO.SeekOrigin.Begin);
unlinked = reader.ReadUInt16();
In SimPe, the sim's icon will have a blue background if 'Unlinked' is not zero.
What is interesting is that there is no completely infallible way to tell if a sim is dead, programmatically.
I think the game only needs the 'Ghost flag' set, without any consideration for the 'I am dead' memory token.