Interesting. So each permission has a certain "protection" level?
If I understand it properly protection level is associated with the application itself rather than the permission, but some permissions can only be granted under specific circumstances.
For instance, some permissions can be granted only for apps in /system/app or /system/priv-app folders while others according to the link I posted only to apps which have specific protection level set in the manifest of the apk file. And in this case understanding the real reason behind "permission is not a changeable type" needs some analysis of the source code of the OS, but is likely to be a dead end, in particular if the protection level is set to signature.