I really wish mobile OSes would allow you to grant apps permissions but serve fake data, (that's important!) without giving the app the ability to tell the difference. Just so it appears to the app that you've given the permission, when you in fact have not. This would solve this entire class of problems and then some. So, for example: - App "has" access to contacts, but the system returns that you have none. - App "…
While for contacts and location that would be a good feature (I agree!), I'm not so sure about storage. It may be nice for certain rogue apps (or ones that request permissions they don't actually need) to give them /dev/null without them knowing, but that may actually result in bugs and unstable behaviour if apps are written to expect working storage. Storage doesn't have a built-in failure mode like contacts and loc…
Yes it does: disk full. It's perhaps a bit less reasonable to expect a program to keep working properly in such a case, but it needs to be handled somehow.