以下のように、Iconv.open("foo", "bar") {|x| p x } が無限ルー
プっぽく振る舞うのはなにか変ではないでしょうか。

% ./ruby -riconv -ve 'Iconv.open("foo", "bar") {|x| p x }'
ruby 1.9.2dev (2009-10-15 trunk 25339) [i686-linux]
["foo", "bar"]
["foo", "bar"]
["foo", "bar"]
["foo", "bar"]
["foo", "bar"]
["foo", "bar"]
["foo", "bar"]
["foo", "bar"]
["foo", "bar"]
...

なお 1.8 では、ループにはなりませんが、ブロックが 2回呼び出
され、終了ステータスが 1 になります。

% ruby-1.8 -riconv -ve 'Iconv.open("foo", "bar") {|x| p x }'   
ruby 1.8.8dev (2009-10-12 revision 25312) [i686-linux]
["foo", "bar"]
#<Iconv:0xb7d65364>
zsh: exit 1     ruby-1.8 -riconv -ve 'Iconv.open("foo", "bar") {|x| p x }'
-- 
[田中 哲][たなか あきら][Tanaka Akira]