Instances of a mesh, each with different shape key value

I spent ten minutes trying to solve this, and I came up with something :
Shift+D your objects first, and animate their shapekeys. When the basemesh changes, select all your objects with the new basemesh selected last (active) and ctrl+L, “link object data”. Then U, “object and data”, there you have your copies of the new basemesh. The tedious part is now : re-linking the shapekey action (from inside the dopesheet, “shapekey” mode) for every single one of your objects. I guess if you name them carefully beforehand it’s not too long to re-link them all. Maybe you can write a routine for this if you know your way around python.