Ah right, for some reason I thought you were talking about C++.
Yes for C what you mention makes perfect sense.
I agree with you about C++ as well. In particular, C++ templates end up expanding a lot of duplicate code, and at O1 the compiler can remove them.