I do realtime embedded. I made a kernel that had C++ support and it would crash on boot. The watchdog timer would fire before all the C++ support initialization routines would finish. I had to disable the watch dog timer temporarily. I think it was the exception and io streams initialization code that was the culprit. The whole exceptions thing can be bloated depending on implementation to varying degrees. But in the end what is more bloat (checking return values all the time or exception frames handling all the time) I do not know.