The short answer to most of those questions is "yes".
On recent versions of Android you will be asked the first time you run an app whether you want to grant it the permissions it requests (or rather, some of them - see later). In some cases your options are "yes" or "no", others may give more options (e.g. for location permissions it's likely to be something like "all the time", "only when using the app", "this time only" or "deny"). But you can always change these by going into Settings > Apps, finding the app and looking at its permissions (or just search for "permissions" in the system settings search box). It's up to you what you accept or deny, and an app should continue to work, just won't be able to do whatever the permission was needed for. Some older apps (designed before this) might just not work, and some will ask you and then tell you then can't work without the permission and ask again (being awkward I tend to ask "do I really need this?" for any app that does that with me).
I say "for some permissions" because it only gives you the option of denying some permissions. There are others that are just granted regardless if the app asks for them. Google will claim that it's just "sensitive" permissions they offer you the option to deny, but my definition and theirs don't always agree. But if there are other permissions which it doesn't ask you to accept that you are not happy with your only option is to not install (or uninstall) the app. Until a few years ago all permissions were like that, so this is progress.
As for downloading an app and installing it later, yes you can, but not from the Play Store (there are sites you can install the app installer packages, apks, from, but you need to know the difference between safe sites and those likely to contain pirated material and/or malware). But why download and then wait to install? Just having the apk file on the phone won't tell you anything much about the app, so if you want to do more research into it before installing why not do that before downloading in the first place?