>NULLだって、void*型の値の時もあるし、int*型の値の時もある。

それはNULLに型情報がないからこそ、そういうふうに使えるんじゃない?