¿Por qué WeakReferences en RelayCommand?

Recientemente realicé la actualización de MVVMLight 3 a 4, y noté que se rompieron mis comandos. Resulta que el uso de referencias débiles en el nuevo RelayCommand (implementado en la versión 3.5) estaba causando que una construcción de código que estoy usando falle. Sé que hay algún argumento para refs débiles relacionados con la pérdida de memoria, simplemente no lo entiendo.

Esto falla:

private void InitCommand()
{
    Command = new SwitchMainGridCommand<SwitchMainGridToolViewModel>(this).Command;
}

Por error, quiero decir que cuando voy a usar la propiedad de Comando que había inicializado y vinculado, sus métodos de respaldo han sido recolectados y el Comando no se ejecuta. Curiosamente, el objeto Comando todavía está presente, solo las propiedades de soporte en SwitchMainGridCommand ya no están. Antes de refs débiles en RelayCommand, la referencia a Comando también mantenía las propiedades de soporte disponibles, aunque SwitchMainGridCommand no se conservaba explícitamente.

Esto tiene éxito:

SwitchMainGridCommand<SwitchMainGridToolViewModel> _refHolder = null;

private void InitCommand()
{
    _refHolder = new SwitchMainGridCommand<SwitchMainGridToolViewModel>(this);
    Command = _refHolder.Command;
}

La creación de una variable de clase _refHolder en ViewModel donde se asigna el Comando mantendría los métodos / propiedades que _refHolder.Command hace referencia a la recopilación.

Supongo que este es el comportamiento deseado de una referencia débil, simplemente no estoy seguro de por qué se desea.

Respuestas a la pregunta(2)

Su respuesta a la pregunta