Che il concatenamento stringhe eseguito nel modo meno opportuno sia presente in più esempi contenuti nella guida di VS2005 è ormai accertato, ma guardando il codice d'esempio relativo a SymmetricAlgorithm ho notato che, oltre alla citata modalità di concatenamento, non viene neanche eseguita la Dispose() dei due FileStream.
Ok, lo stream viene chiuso, e nella chiusura viene invocata la Dispose(), ma essendo codice "didattico" a mio avviso è sicuramente errato dare per scontato che lo sviluppatore (che tendenzialmente consulta la guida per "imparare") conosca il meccanismo interno della classe FileStream.
Mi aspetterei piuttosto che ogni "sample", in merito alla Dispose, comunichi il concetto: "se implementa IDisposable, alla fine chiama 'sta Dispose".
Anche perchè in una versione futura del framework (e relativo aggiornamento del codice) nulla vieta che qualcosa possa cambiare nell'implementazione interna di FileStream rendendo la Dispose() non trascurabile; e il problema rimarrebbe sparso per tutto il codice.
Boh, magari sbaglio io...