Another example of how mainstream compilers are absolutely fucking idiotic.
Even for a "Hello world" GCC manages to emit 6 instructions, when only 2 are needed. (Set the pointer to the string and jump to puts. It's a tail-call so no need to return here.)