EffectiveC++に確かこんな記述があったはず。
(若干表現は違ったかもしれない)
>基底クラスのポインタを介して派生クラスのオブジェクトを
>削除するとき、基底クラスのデストラクタがvirtualでないと
>、その結果は不定となる。
>不定とはコンパイラはどんなコードでも好き勝手に生成しても
>よいということだ。
この記事を読んでからは
特定のコンパイラで制限付きで動いてても
virtualでない場合は(似非)継承は避けることにした。

ポリモフィックな動作を保証できなくなるなら
他のキーワードがあっても良かった気がする。