Ну, такие вещи можно еще до компилятора самому немного
оптимизировать. А lto — штука классная, но косяков не прощает. Было у меня пару раз, что после того, как повсеместно в cmake/makefile внедрил эту опцию (как под ПК, так и под МК), что-то "не взлетело". Причина была в моих кривых руках.
Но вот такие вещи, как встроенные функции, я оставить не могу. Поэтому шлангом значительная доля моих "творений" не собирается. А еще, -pedantic нельзя использовать. Недавно, кстати, вообще наткнулся на древний баг, который в gcc даже исправлять не хотят: https://eddy-em.livejournal.com/531446.html