C++ だとそれぞれのコンパイラは「意図的に」マングル規則を違わせていて統一を避けてる。
オブジェクトのレイアウトや関数呼び出し規約 (ABI) を統一したとしてもそれ以外の様々な部分で協調できないと簡単にクラッシュするからうっかり混ぜることがないようにそうなってる。