обычно же все спускаются до уровня сишки в таких случаях и простых типов данных
Это потому что никакого другого стабильного ABI в природе не существует. На Windows есть COM, но он тоже что-то никому не нравится, несмотря на сильно более развитые возможности.
Я от них никакой пользы в своём продакшен-коде не вижу. И постоянно приходится изобретать костыли, чтобы всё-таки выкинуть исключение из того кода, где, типа, нельзя.