BinaryReader.Dispose (bool disposing) crea una referencia local para transmitir. ¿Por qué?

Encontré una muestra inusual en el código FCL.

Este es el método en 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; 
    }

¿Qué impacto en la lógica de ejecución tiene 'copyOfStream'?

Respuestas a la pregunta(1)

Su respuesta a la pregunta