You can block such permissions in CyanogenMod based roms via their 'Privacy Guard' feature. And I am sure there are other solutions but most likely would require a rooted device.
I think such functionality as you described should be included into Android as standard allowing the user to grant permissions to confidential information.