Paul, I hear what you say (about JB not storing exchange contacts locally) but I have to disagree. My SIII originally came with ICS. Back then, everything exchange (emails, contacts and calendar items) were being pushed and back just fine and, needless to say, contacts WERE stored locally as I, too, used the direct dial widget for family members on my home screen with no issues.
My OTA (over wifi, actually) JB update arrived a couple of months ago and all contacts were still working fine (showing up on my phone instantly, meaning, no need to connect to the exchange server in order to retrieve them). Yet, in all fairness, I cannot verify if--since the JB update--my phone's exchange contacts were being updated from the server. I can only assume so.
In my case, the trouble started when--for testing purposes--I entered my exchange's IP address, replacing its CNAME. The moment I did this, all locally stored exchange contacts disappeared, NEVER to return back, even when I entered again its CNAME or even after a complete factory reset of the phone.
I cannot support it with facts but I suspect it is an Exchange 2003 issue. For some reason, I guess it has registered my old setup with a certain mobile device "ID" and ever since the change or the factory reset, it just doesn't push my contacts to my "new" phone (to which, I assume, exchange has assigned a new device ID, even though it is still an Android device).
I also understand that Exchange 2007 and 2010 (but not 2003) have a special property within the OWA administration screens that DO show the mobile devices "connected" or "allowed to connect" to a specific exchange user account. Through the same screen, you can DELETE or REMOTELY WIPE all exchange data stored locally on the device, should you lose your phone for instance. Now, there is a MSFT-issued tool for 2003, (see:
Download Microsoft Exchange Server ActiveSync Web Administration Tool from Official Microsoft Download Center) that essentially allows exchange admins to do just that, but my company's admins are a bit ...chicken to try it. If they weren't, I would just delete my android device from it and recreate from scratch my exchange account on my mobile, so that exchange would treat this as a "new" device, pushing everything to it.
What I have done, meanwhile, is an export of my exchange contacts into gmail, so that I now have them on my mobile, alas, not synced in any way with the "live" ones on the Exchange server. It's better than nothing.
Also, I would thing that Google playing it so dirty is just plain stupid, so I don't think that this is done purposefully... Strangest things have happened, though. ;-)
cf