Cはコンパイラのルールとしてincludeしないと存在を知らないように
してしまっただけ。文句はK&Rに言え。

さらに言うと、includeは単に「外部参照を仮定する」だけなので、
同一名のグローバルシンボルが仮にあったとしても宣言通りである
という保証はない。