AFAICT, libc_hidden_proto causes the symbol to lose its special attributes, e.g. if it had __attribute__((noreturn)). For noreturn this meanings spurious warnings in libc code, but for const it could hurt optimization and for any weirder ones (regparm!) it could really be a problem.