Section 8.3.7 of the SAML Core Specification states that the persistent
nameID format is used for privacy protection:
Persistent identifiers are intended as a privacy protection mechanism; as such they MUST NOT be shared in clear text with providers other than the providers that have established the shared identifier. Furthermore, they MUST NOT appear in log files or similar locations without appropriate controls and protections.
I'm not certain that I understand the intent behind the use of persistent identifiers as a privacy protection mechanism - particularly in light of the fact that most of the other NameID types (email, SN, qualified name, kerb principal, etc.) will be the same across all SP's.
How is the unique NameID per-SP a 'privacy protection mechanism'? Specifically, what attack vectors would be mitigated by the use of a persistent
NameID field over another type (particularly when protections like correct audience restrictions and signatures are in place)?
It is a privacy protection mechanism because it doesn't transfer your real identifier from the IdP to the SP. Meanwhile, the Email NameID type, for example, transfers your email from the IdP to the SP.
One online resource that I can find which explains this pretty good is http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html section 5.4.3 Federation Using Persistent Pseudonym Identifiers.
I do think there is a typo at step 5 though. It should be "use persistent name identifier format" instead of "use transient name identifier format".