¿Cuál es la justificación de todos los diferentes X509KeyStorageFlags?

@Today, un colega encontró otro error relacionado con estos! He encontrado estas banderas realmente frustrantes en el pasado, porque si las equivoca un poco al crear instancias de objetos X509Certificate2, o al exportarlos, o al guardarlos en una X509Store, puede aterrizar en situaciones con todo tipo de errores extraños como:

unnexpectedly no puede decirle a NETSH.exe o ASP.net que use un determinado certificado SSL [por su huella digital], aunque tenga ese certificado en su tienda de máquinas inesperadamente puede exportar los datos del certificado, pero se exporta sin la clave privada usando .Export () inesperadamente sus pruebas unitarias comienzan a fallar en la versión más reciente de Windows aparentemente porque no estaba usando las banderas correctas

Sí, están documentados y todo (y parte de la documentación parece tener sentido), pero ¿por qué tiene que ser tan complicado?