You are correct. But the Ariane crash was the result of improper testing when reusing (valid and correct) code in a new situation that resulted in the crash.
Better testing and development procedures would have, potentially, prevented this. And it could have occurred regardless of the languages involved.
What Ada does bring to the table, however, over C, C++ and Fortran (the other 3 primary languages used in the embedded avionics world) is a much better type system and concurrency system that gives greater confidence when developing the system. Much as the ML worlds type system reduces or eliminates certain categories of errors, or moves them to compile time rather than runtime. Where they are still detected in runtime, Ada also offers, particularly during test and development, much greater ability to determine the earliest location of the error if the type system is being exercised properly.