Quando eu precisaria de um SecureString no .NET?

Estou tentando aumentar o propósito do SecureString do .NET. Do MSDN:

Uma instância da classe System.String é imutável e, quando não é mais necessária, não pode ser agendada programaticamente para coleta de lixo; ou seja, a instância é somente leitura depois de criada e não é possível prever quando a instância será excluída da memória do computador. Conseqüentemente, se um objeto String contiver informações confidenciais, como senha, número de cartão de crédito ou dados pessoais, há um risco de que as informações possam ser reveladas depois de serem usadas, porque o aplicativo não pode excluir os dados da memória do computador.

Um objeto SecureString é semelhante a um objeto String, pois possui um valor de texto. No entanto, o valor de um objeto SecureString é automaticamente criptografado, pode ser modificado até que seu aplicativo o marque como somente leitura e possa ser excluído da memória do computador pelo seu aplicativo ou pelo coletor de lixo do .NET Framework.

O valor de uma instância do SecureString é automaticamente criptografado quando a instância é inicializada ou quando o valor é modificado. Seu aplicativo pode tornar a instância imutável e impedir mais modificações invocando o método MakeReadOnly.

A criptografia automática é a grande recompensa?

E por que não posso apenas dizer:

SecureString password = new SecureString("password");

ao invés de

SecureString pass = new SecureString();
foreach (char c in "password".ToCharArray())
    pass.AppendChar(c);

Qual aspecto do SecureString estou faltando?

questionAnswers(11)

yourAnswerToTheQuestion