Some obscure or secondary function might not work.
I had this app for example (can't remember the name) that insisted on getting networking permissions. I kept refusing each time it asked at startup time but it was working fine. Then one day I realized it wanted it for its online help that I never read.
It really depends on the app.
Also, you have app developers that copy/paste sample code, adapt it a bit to their purpose and call it good enough, even of the sample code includes a lot of libs and permissions that aren't actually used by that particular application.