Many apps such as Facebook and Instagram simply request access to all "photos and videos". Presumably this is so they can show you their own gallery to choose from when posting them online. The risk that these particular apps have access to everything, not just the photos you choose, is probably low (but wouldn't be that surprised if they're scraped for ads).
Ideally, Android could offer a barrier so I could share only the photos I want with each app. E.g. I was hoping I could use a separate app to find the photos I wanted and share them to the Facebook app. Unfortunately when sharing, Android still requests permission for the app to have access to everything. Better yet, Android could offer an API to show a gallery but the app can't read the image contents until the user has chosen it.
Is there a workaround to limit photos and videos access that apps get?