>>2はVSYNC信号をトリガーに循環リストの全要素・全ゲームオブジェクトを総ナメしてupdate() 関数を呼び出す
ここで注意が必要なのは「システム」を自称する>>2は何故か一本糞の循環リストしか持ってないっつーこと。
そしてVSYNC信号が発生する度に、相手の都合なんてお構いなしに、呼び出される必要があろうが無かろうが関係なく

              【問答無用でとりあえず全てのゲームオブジェクトを叩き起こす】

「ねーVSYNC信号発生したよ?起きなさいよ。やることない?やることない?あるならやれよ早く。無いなら処理返せよ早くホラ」

これポーリング処理。一本糞リストしか持たない>>2がオブザーバ・パターンだとか言ってる時点で何かがおかしい