That's a design decision and an implementation detail. Singletons can be easily programmed to timeout and free resources when needed, or on application phase change.
Further, if a given instance isn't referenced during a particular application launch and execution cycle it's not instantiated.
But the fact remains that the pattern exists to safeguard access to resources where one and only one reference to that resource should exist.
Might mention again that the article title promises to tell us why "singletons" aren't safe, and then goes on to illustrate examples of statics and global shared state... which aren't singletons.