Recently I wondered the same question because BufferedIndexInput.SliceIndexInput.close() calls base.close() where base is a clone of the original input (so in the end it's a noop?)
ByteBuffersIndexInput.close() simply sets in = null but does not call in.close() (shouldn't it do so?)