Android is a great mobile OS and is based on Linux so has a pretty solid core. However, many of the mandatory Google apps and services that come bundled with it are not so great and have an annoying habit of ignoring user choices.
For example, the Google keyboard will auto-update even when app updates have been switched off. Keep in mind that the keyboard knows everything you type so is pretty privileged. Google may know this anyway as they control the OS but if you use a third party keyboard then it’s worth thinking about.
Google Play services is another bit of software that ignores update preferences, although you can revoke most permissions it has granted by default. It will complain bitterly about this but most things will work fine.
For example, this game works absolutely fine if you cancel the modal popup. If you need to use a feature such as nearby then you could enable microphone access temporarily.
Denying access to hardware can also help prevent apps locking resources. For example, if a badly written app hooks the camera and doesn’t release it then nothing else can use it. Android doesn’t provide an easy way to tell which app has a resource locked so a full restart is usually required.
My phone only has camera access enabled for apps that genuinely need it and I still have to restart it regularly to release a lock. If you wanted to make sure that no apps have camera access then you could build a simple app to grab the camera and never give it back.