>... objList.push_back( static_cast<CBase*>( new A ) );
>... objList.push_back( static_cast<CBase*>( new B ) );
この場合static_castはイラン。

ダウンキャストは別にダメではない。
dynamic_castがあるし、オブジェクトの本当の型がわかっているのならstatic_castでもいい。