Any compiler should because as a definition, int foo() { } does in fact inform us that the function can only be correctly called with no arguments.
Formally, this is not introduced into the scope as type information according to the language spec, but that's no reason not to warn about it informally.