ハードウェアよりのプログラムに C++ を使うのも結構便利だよ。
でも僕はそういう用途で例外処理や実行時型情報は使わないけど。
C++ のメソッドをアセンブラで書くこともあります。

要はコンパイル時にすべて静的に解決できる機能だけ
使ってるってことです。

多分 cfront でも事足りる機能だけ。

そういう厳格にアクセス制限と型づけされた高級アセンブラとしての
C++ の使い方もあっていいと思います。

それとは逆にもうモロにオブジェクトマンセー的な使い方もあるわけで、
こっちのほうは Java でも C# でも好みに合わせて使えばOKかと。

個人的には C++ と Scheme を使うことが多いです。