I have one small point to add. Isn't Symbian written in C++? I don't see any recompiling done there. The same app will run fine on an N95 and on a N85. The same app will also run fine on an N8 and C6. So why should an application, just because it is written in C need recompiling?
If they needed to be recompiled, they could only work on one phone only.