Google has been very careful not to add an internet permission on Android, even though things like flashlight apps shouldn't have needed internet. Google is an internet ad company.
Ah, "The Network is the Computer" [1]
[1] https://en.wikipedia.org/wiki/The_Network_is_the_Computer
FWIW, GrapheneOS supports disabling internet access for apps.
It's a rite of passage of every Android app to crash on the first launch because you forgot to declare the INTERNET permission in the manifest. It's been there since day one.
It's auto approved and non declineable in the settings, but technically it's a permission you can revoke, just needs to be surfaced.
I'm fairly sure Android used to have an internet permission back in the early days. But then basically every single app requested it so the utility was diluted. Then they switched away from a static list of permissions and more to a ask for permission at the time of use model.
The old permissions model was always a bit of an illusion of choice. The app presented a massive list of permissions and you could take it or leave it. But when every app asks for every permission you don't really get a choice and just had to accept it. The new model where you can install an app and then reject it's permissions is much better.