速度と管理のしやすさの折衷案を取るとすれば、
1、キャラクター1体につきオブジェクトとテクスチャを1個ずつ。
2、キャラクター1体につき、1回のDrawPrimitive
3、使いまわせるテクスチャとオブジェクトはハッシュテーブルにでも登録しとく
か。

C++かC#で作るとすれば、登場キャラクターをクラス化するのが手っ取り早いし設計も綺麗そうだね。
ただ、弾幕シューティングみたいにオブジェクトが大量に出現するゲームの場合はもうちょっと考えたほうがいいかも。