> Do you believe a user should be able to "MITM" her own traffic or not?
I do, but that is utterly irrelevant to this discussion. We are discussing what certificate pinning is and how it works.
You can currently perform certificate pinning on every single operating system you can imagine. You can do this in a way that completely ignores the trust store of that operating system, and anything the user does to this is ignored by the application.
This has been possible for years on Android. This has been possible for years on Windows. This has been possible for years on Linux.
All the developer has to do is include the certificate of their own CA with the application, restrict the SSL's trust store to this one certificate, and then also check the fingerprint of the resulting certificate offered by the server. Then if the application notices this fingerprint is incorrect, it bails.
This is reality. This is how it works. Nothing I believe or want will change this. No amount of certificates I install in my operating system's trust store will change this either.
What android is doing is making MITMing yourself harder. But it's always been 100% possible for developers to make MITMing impossible without first reverse engineering the app and replacing the baked in certificate.
That's just the way it works.