We're also very successfully using CMake as our build system, as opposed to Make itself. It lets you organise your build system & support different configurations & dependencies in a much easier way than e.g. Makefiles & Git submodules, which we've tried in the past. When combined with the Ninja generator we're also seeing ~20% faster compilation times.
And then we were always using IAR in a way that disabled all and every optimization; if enabling them did not lead to a compiler imploding, the compiler would produce invalid machine code even for trivial examples. This defeated any possible code size benefits that IAR may have had over GCC/Clang.
To top if off, I had an impression that reports of that nature weren’t really considered critical.
Regarding code size: the common pitfall is -Os for GCC and -Oz for Clang based compilers to optimise for minimum code size.
For example any improvements that may reveal NDA stuff from their consoles never gets upstream.
(Building bare metal code with a lot of DSP and MATMUL)
You can try it : https://github.com/powturbo/Turbo-Base64