Да, синглтоны должны быть запечатаны. Нет, они не должны наследоваться.
Причина в том, что основное (на самом деле только ) поведение Синглтона состоит в создании его экземпляра в какое-то заранее определенное время. Поскольку эта функциональность является статической, ее нельзя переопределить, поэтому вместо этого ее придется дублировать. Как только вы начинаете дублирование, у вас есть несколько экземпляров синглтона, что на самом деле не имеет смысла.
Либо это, либо вы столкнетесь с условиями гонки или другими конфликтами, поскольку «производные» синглтоны борются за контроль над глобальным экземпляром, который не только не имеет смысла, но и опасен.
Есть некоторые хакерские обходные пути к проблеме наследования Singleton, но это то, чем они являются - хаки. Шаблон Singleton не очень подходит для наследования.