次のように、ARGF.lineno が初期状態において false を返すのは、

% ruby -e 'p ARGF.lineno'
false

次のように、IO#lineno が 0 を返すのと一貫してないんじゃないでしょうか。

% ruby -e 'p STDIN.lineno'
0
-- 
[田中 哲][たなか あきら][Tanaka Akira]