Interesting find there. The wording is also in the C99 draft; it is not new.
It is in fact saying that the empty list in a definition is a special case and does declare that the function takes no parameters. To "specify" here can be understood to mean as inserting information about type into the declaration scope; that which a declaration does.
So that's a bit of a bug in GCC there; it should be treating this the same as (void) and therefore diagnosing that way. If not by default, then at least when -pedantic is applied. But nope:
$ gcc -Wall -W -std=c11 -pedantic proto.c
$