io = File.open 'text.gz' #俺様専用!

gz = Zlib::GzipReader.new io
gz.close
io.closed? # しまった!

IOクラスのインスタンスを要求するライブラリで、closeを呼ぶと
上流のIOがcloseされてしまう仕様は、何か理由があるのですか?

内部でIOを複製してそれを使えばいいじゃないですか、と思うのですが。