My guess is that many of the optimizations causing increasing trouble were introduced to improve C++ code performance in pursuit of the "zero-cost abstraction" goal. But many are just as applicable to C (and may even be below the level that a compiler like gcc or clang knows the difference).