As the example I'm most familiar with, let me consider the Opera Mobile web browser. Since the browser supports GetUserMedia it has to say it accesses the camera, though in reality it will ask you if the website should be allowed to access your camera if the site asks to do so (if you visit some video chat site). Likewise since they support location-aware websites, the permissions say it uses both GPS and network location data - but again, if you visit a website that wants your location (so they can tell you where their nearest physical store is, for example) the browser will ask if the website should have access to your location. The Play Store doesn't have any way of indicating that the app will ask before actually accessing this data.
And for those apps which don't offer a choice, the OS should. All browsers support 3 general settings for cookies - accept, deny (block), and ask. You should be able to say "No, I don't want this app knowing my location today" if you so choose - and still be able to allow it tomorrow. Or still run an app while denying it access to your contacts - ever. It should be part of Android (the browser shouldn't have to ask per se) or whatever OS, so that the developer doesn't have to think about it ... well, okay, an email or chat app always needs access to your contacts, so maybe they should have a "requires" and "can use" in the permissions.