Shape key drivers with shared armature + mesh data

I recently learned about drivers and how to set them up. I have a rigged character, and its armature contains special bones used to control shape keys on the model. When only one instance of the armature and model are used, everything works well. But things break if I duplicate the character (armature + parented mesh) while keeping the data. Apparently, shape key drivers are considered a mesh property, rather than an object property or at least a key action… making it difficult to use duplicates of the character with functional driver bones.

I posted a simple blend which shows my issue; There is a mesh with a shape key, and an armature with a bone that controls this key via a driver. The armature and mesh are however used by two objects each, and there are two versions of the entire structure. Due to the issue I mentioned, the bone in one armature controls the shape key in both objects, whereas the bone in the other armature does nothing. Please try to change that and post a corrected version, where each bone controls the shape key of the mesh it’s parented to… but without making the armature or mesh data unique users per object. If there’s no way builtin, maybe a python expression can do?

http://www.pasteall.org/blend/31102

If there’s no way to fix this however, please mention so. But don’t ask that I make the object or armature data unique for each object, since in my project I really want to keep them common to save file size and have mesh edits automatically apply to all objects. I know that this would fix the issue, but it’s not what I want. I’d rather not use drivers at all than duplicating the mesh / armature data for each object.

To answer my own thread, it appears there isn’t really a way to fix this. I asked on the IRC channel, and was told that shape key drivers are a mesh property, and therefore cannot be separated per mesh data user. That means I have to find other alternatives, but thankfully I already have in my case.