RE:
>Про генерацию вызовов линкером тоже поподробнее, пожалуйста.
В документации к gcc4 при описании компоновки кода скомпиленого gnat c кодом скомпиленым g++ так написано (вольный пересказ): "в связи с тем что в обьектниках сгенеренных g++ как и большинством других компиляторов C++ отсутствуют вызовы конструкторов для глобальных и статических обьектов вы должны использовать линкер C++ для линкования, который и догенерит нужные вызовы".
То что этого хака не потребовалось для других языков и без этого хака не обошлись большинство компилеров как раз и говорит на мой взгляд о кривизне самого языка.
Обьектники полученные путем компиляции кода Objective-C и Ада можно слинковать "любым" гнутым линкером вручную дописав линковку рантайма.