Ich sag ja, ist ein Fehler in Delphi.
Diese
Exception dürfte erst garnicht ständig neu erzeugt werden ... wie es richtig geht, sieht man an EOutOfMemory.
Aber man kann es eh nicht ordentlich implementieren, da AllowFree privat ist und somit in anderen Units nicht nutzbar ist.
(sowas gehört in protected)
Fazit: Dieses Singleton ist fehlerhaft implementiert und falsch verwendet.