Apple's API don't discriminate with regards to precision. An app that shows nearby stores with a 1km radius precision requires the same level of permissions as an app that's trying to do 1m precision.
Apple's API allow very fine-grained control of both the accuracy and frequency of location updates, depending on, among other things, running in the foreground/background, the user's location etc.: https://developer.apple.com/library/content/documentation/Pe...
There's currently no explicit penalty for requesting too much information, but the battery power indication could probably get users to uninstall apps wasting energy, and it can even get you app terminated.
Unlike Android which have precise and coarse location. If Google wanted, they could limit precise to GPS and similar apps and force everyone else to use coarse location or geo fencing.
Unfortunately Google doesn't care about your privacy. In fact, it's only a matter of time before they remove coarse locations and/or give every app full access to location data (the same way they did with internet access).
That's a good point. Maybe app developers should be able to request the level of access they want, like precise location, neighborhood (postal code), city, state or country.
If an app never needs more precise information than the country (say Spotify trying to decide whether they operate in your country), they don't need to request it. That also guards against bugs or security breaches in apps that try to do the right thing.
Right. An application can ask for what it wants (low accuracy is much faster and burns less battery since it doesn't start GPS) but there's no way for the user to say that an app can ONLY get low accuracy data.