Может ли сборщик мусора удалить Singleton?
да может если на класс или его инстанс нет внешних ссылок тк класс это тоже объект
проблема решается созданием внешней ссылки или параметром jvm -Xnoclassgc
Я не знаю способов реализации Singleton в Яве, при которых так или иначе не используется статическое поле с экземпляром класса (во всяком случае, адекватных способов). А статическое поле - это всегда корень для GC, будь оно приватное или нет. Поэтому ответ: нет, не может.