Can one application access data of another application in some way because it has access to files on phone storage?
No (in non rooted phones). Each application you granted permission to access file system will access to it's own data. It can't access to some other folder which is private to another specific application without your interaction.
Can it make screenshots/log keystrokes without my knowledge?
If you granted permission to work in background, they can.
Do such permissions exist?
Yes. Most of them exist. But not directly.
You grant the permission to an app to overlay on another app. Then it may create a fake keyboard while you type. That is you are actually typing on the fake keyboard which is created by the app.
The app can record your keystrokes and also add it to the field which is focussed. So, you won't doubt it.
How can I protect my phone from such things?
Limit and review the background applications.
In latest versions, there is a privacy manager app in which you can set the permissions to allow or deny or ask every time, which is requested by the app.
I think the only way: to use only trusted applications with good reputation from well known companies.
Facebook recently stated that they will access the user's smartphone/ computer camera to record your reactions while watching each post and then using some AI to give you the content based on your reaction. That is if you are in a funny mode, it will give you such posts and so on.
Google now will record all your voice which you used in voice search for improving their application and the future search results.
Google map will store all your location history you visited.
So don't trust app's from trusted companies.