That’s a hold out from the Android world, where apps are generally written to expect the user to provide requested permissions. Before Android 6, apps would get all permissions requested for on installation (or the user wouldn’t be able to install the app). From Android 6, when the permission model changed to be similar to iOS to get it at runtime, apps didn’t get written for this new world and would crash or refuse to work. Even today, there are apps that will refuse to function if some (non-critical) permission is not granted.
I deny functions to apps in Android all the time. I've yet to run into an app that will refuse to run unless that denied function is explicitly needed for that app to do what it was designed to do: eg, location for maps.
There are plenty. Try getting a Roborock vacuum cleaner and getting it to vacuum your floor without giving away GPS permissions on your phone, it's impossible unless you take the damn thing apart and solder some wires to the RX/TX and root it with its dev serial port.
Wechat also for a while didn't even allow logging in without location permissions. They may have changed that but there are lots and lots of offending apps.
This is a complex one. I'm almost certain the reason is they want to scan for bluetooth devices to pick up the vacuum cleaner in the app.
The problem is that scanning for bluetooth devices basically is GPS because marketers started putting beacons all over the place and using their tracking toolkits in apps to pick up these beacons.
So android changed the permissions so you had to ask for location access to scan for bluetooth.
So as an app dev, you get the option to ask for location access and make setup easy, or you can direct the user to go to the bluetooth settings and pair with the vacuum and come back to the app to continue.
At one point WeChat wouldn't permit logging in without location permissions. RoboRock vacuum cleaners also must be set up using an app that requires GPS permissions, and they send your GPS and Wi-Fi passwords and things to their server. It's sad, but they make one of best actual vacuums.
I'm not sure if that's the case still but I've run into several other apps that do similar things. It's pretty widespread.
In any case, it's awesome to have an OS that can make apps think they got permissions and just shove fake data at them.