事前確保とポリモーフィズムは相性悪い?

id:arCtan:20050820で書いたように、シューティングゲームのようにたくさんのオブジェクトを一度に生成する場合、それをnewで行うのはパフォーマンス的に結構厳しい。そこで従来行われてきたのが、ゲームの初期化時に必要数のオブジェクトを静的に確保するという方法だ。事前にガバッと確保してしまって、それを使いまわすわけだ。
いかんせんnewの処理が重過ぎるのでこっちの方法に切り替えようと思っているのだが、しかしこの方法、ポリモーフィズム多態性)と相性悪くないか?ていうかまったく方向性が逆の方法なんだから仕方ないのか。
自機、敵機、弾などのキャラクタを生成する場合を例にとると。
newの場合、キャラクタ基底クラスのポインタの動的な配列(vectorとか)をチェインとして持っておいて、キャラを生成するときは個々のキャラ型の派生クラスをnewしてチェインにinsertすればよい。移動や描画の関数を仮想関数にしておけば、チェインに対していっせいにそれらの関数を呼ぶと、ポリモーフィズムによって自動的にそれぞれの正しい派生クラスの関数が呼ばれる。
一方事前確保の場合、当然だがポインタではなくオブジェクトそのものを確保しなければならない。オブジェクトはもちろん基底クラスではなく、実際の派生クラスのオブジェクトを確保しなければならない。そしてこれらの派生クラスの配列を、派生クラスの種類だけ作らなくてはならない。さらにオブジェクトを使いまわすための生成系も、それを利用する派生クラスの種類だけ必要になる。まさにオブジェクト指向の恩恵がまったく得られない、拡張に対して柔軟性のまったくないシステムになってしまうのだ。
したがって、このような事前確保のオブジェクト生成系を使う場合は、設計時に仕様をかなり固めておかなくてはならなくなる。まあ個人で作るゲームならそのくらいでちょうどいいのかもしれない。けどなあ…問題はnewでやってみたけど重すぎてやっぱ事前確保にしようと思って移植しようとしたらすげー面倒になってる俺ガイル。ってこと。くそーnewを軽くしたい…。

追記

ん〜、もしかしてBYTE型とかそういう汎用型で確保しておいて、キャストして使うのか?