ActionScript3.0でのSingletonについて

ActionScript3.0を最近いじる機会があったのですが、ActionScript3.0でSingletonを実装しようとしたら「コンストラクタはpublicでなくちゃだめ☆」と怒られてしまいました。
でその解決策ですがこんな方法があるようです。

//Singleton.as
package{
  class Singleton{
    private var m_cSingleton:Sigleton;
    public function Singleton(cSingletonBlock:SingletonBlock){
      if(cSingletonBlock == null){
        throw new Error("getInstanceを使ってね☆");
      }
    }

    public static function getInstance():Singleton{
      if(m_cSingleton == null){m_cSingleton = new Singleton(new SingletonBlock())}
      return m_cSingleton;
    }
  }
}
class SigletonBlock{}

とまあこんなかんじ。
要は外部から読めないクラス(ここではSingletonBlock)を引数に指定することで、外部からコンストラクタを呼び出すことを防止しているのである。
にしても…
Adobeはなぜprivateを禁止したのだろう?