deliver-keep-symbol-names marks the symbols symbols such that their names are kept if the symbols themselves are not shaken out. This is useful when the symbol name is used as long the symbol is used. For example, you may have a function that calls
error, passing its name (the symbol) to be included in the error message. If the symbol is not referenced by the actual application, it will be shaken out and there is no issue, but if it is referenced, you still want the message to print the name properly. For example the import interface of Java, which generates many callers and there is a good chance that many of them will not be used, marks these callers to keep the symbol names.
If you want to ensure that the symbol is kept even if it is not referenced, use deliver-keep-symbols.
LispWorks Delivery User Guide - 15 Feb 2015