What platform are you on? What ruby version? For me, with ruby
1.8.7.249-2 standard package from Ubuntu Lucid amd64:
$ irb
irb(main):001:0> $?
=> nil
On windows it appears to behave as expected.
On linux (Ubuntu, I believe latest revision).
All built from source:
[25:1557][rdp@ilab1:~]$ ruby -v
ruby 1.9.1p243 (2009-07-16 revision 24175) [i686-linux]
[25:1557][rdp@ilab1:~]$ export RUBYOPT=
[25:1558][rdp@ilab1:~]$ irb
irb(main):001:0> $?
=> #<Process::Status: pid 21719 exit 0>
irb(main):002:0> $?
=> #<Process::Status: pid 21731 exit 0>
irb(main):003:0> $?
=> #<Process::Status: pid 21743 exit 0>
irb(main):004:0> exit
[25:1558][rdp@ilab1:~]$ ~/installs/ruby-1.8.7-p174_installed/bin/irb
irb(main):001:0> $?
=> #<Process::Status: pid=21771,exited(0)>
irb(main):002:0> $?
=> #<Process::Status: pid=21778,exited(0)>
irb(main):003:0> $?
=> #<Process::Status: pid=21785,exited(0)>