Android's permission model is far from all or nothing, it is entirely declarative and applications do not have all permissions (as opposed to the iphone model in which the user is never told what the application can do).
It would be nice if the Android model presented a little more granular information at times, e.g. its perfectly reasonable for a media application to know a phone call is on going in order to pause, but last I checked this was lumped in with knowing who called and a few other pieces. From a privacy perspective it would also be nice to be able to install applications and deny them certain permissions (e.g. provide an empty contact list, or location data) in Android 4.3 this was available through a hidden menu, hopefully it will become more easily available future versions.