Unfortunately apps can refuse to run if you don't grant them the permissions they requested. A better system than simply allowing or denying the request would be to sandbox the app so that it appears to receive the permission but doesn't get access to any useful capabilities. Empty or synthetic calendar / contact list data, Internet access which is somehow never available, camera and microphone which only report darkness & silence, etc. Ideally the app would have no way to tell that it's been sandboxed.