-builtin packages are deleted using remove_builtin
-a file from a loaded sfs (pupxxx.sfs, zdrv or other) is deleted
-a pet is uninstalled
Their purpose is to mask files which can't actually be deleted so they disappear from directories, menus etc. For example, if files 1 and 2 are present in pupxxx.sfs and file2 is "removed", the result in the layered file system is:
|what you see    ||file1|
.wh.file2 and file2 disappear after remastering.
The files from an uninstalled pet and the associated .wh files disappear when the system is rebooted.
Layered file system
Help screen of remove_builtin