>グローバルなオブジェクトの構築と破棄の手当てが追加になるだけぐらいしか違いが無い

おお、心強いお言葉。
例えば

class MyClass
{
int buf[1000];
int no = 0;
void inputdisp(int aa){
sprintf(buf," aa=%d",aa);
}
};
int sub1()
{
MyClass aaa;
aaa.disp(333);
return 0;
}

こういう場合はaaaはbufは2000バイトのRAMを使うけれども、stackに確保するんだろうか?
aaa自体はrom上にできると考えていい?
それなら、cと混在で徐々にC++に変えていく程度でも問題ないのかなとは思っている。