たとえばC言語で昔よく使ったprintfやscanfは戻り値はint型だ。void型ではない。
けど、戻り値を使っていないプログラムを見たことあるよな?
関数の戻り値を必ず使う必要はないわけだ。

sample();

こういう呼び出しがあった場合、どちらを使えばいい?
コンパイラには判断しようがないため規格上できないようになっている。