
I think one the biggest problems is laziness. These crappy little apps are often written by people who've spent about 2 weeks learning Java, then decided to have a crack at Android development, managed to knock up some naff little app in an afternoon and in order to make it as easy as possible to get access to the class defs they need, they simply enable everything possible. It's much like some DB developers simply ask for DBA level account privs as it makes it easier than having to code within the confines of a security system. Consequently when the naff little Android app heads to the store it flags up that it needs X + Y + Z just to enable the flashlight on the camera!