The manual says "Not all optimizations are controlled directly by a
flag. Only optimizations that have a flag are listed in this section."
So there may be additional optimisations at -O3 beyond those listed.
Yes, a statement like "breaks with -O3, works with -O3 -fno-inline-functions"
would be stronger.
Besides, inlining itself may not be doing a transformation that breaks your
code, but instead open an opportunity for one of later optimization passes.
Does your code break with -O2 -finline-functions? You may want to start with
-O2 -finline-functions (or -O3) and add -fno- options until one of them fixes
your code to possibly identify the breaking transformation more accurately.
Alexander