Didn't you ever see the Matrix? Programs don't like to delete themselves.
Anyhow, it seems that you would need to fork a new process (not a lightweight child thread, but an independent process), that would then have its way with the original process (aka, shutting it down, deleting it, etc.). You may be able to pass the PID of the parent to the child, the child then uses the PID to kill the parent process, and remove it from the disk. This is theoretical of course, but seems like a sound theory.
Of course, the primary purpose of doing such a thing seems to be the need to erase one's footprint? Strategically dropping a bomb which serves its purpose then erases any indication that it was ever there? In this case, I deny any knowledge of this thread and any and all contents therein and should any cracking attempts be made as a result of this thread I do not speak English and I know nothing about computers.