BinaryReader.Dispose (bool disposing) cria uma referência local para o fluxo. Por quê?

Eu encontrei uma amostra incomum no código FCL.

Este é o método em System.IO.BinaryReader:

    protected virtual void Dispose(bool disposing) { 
        if (disposing) { 
            Stream copyOfStream = m_stream;
            m_stream = null; 
            if (copyOfStream != null && !m_leaveOpen)
                copyOfStream.Close();
        }
        m_stream = null; 
        m_buffer = null;
        m_decoder = null; 
        m_charBytes = null; 
        m_singleChar = null;
        m_charBuffer = null; 
    }

Qual impacto na lógica de execução tem 'copyOfStream'?

questionAnswers(1)

yourAnswerToTheQuestion