The method I suggested works around the issue but there needs to be a manual re-linking of shapekey actions whenever there is a change made to the base mesh -the one supposely shared by all the flowers. It works, but it’s convoluted, and basically you’re better off having your mesh be final from the get-go.
Shape keys are a property of the mesh right now, which is why any keyframe or driver added on the shapekey value will show up on other (linked) copies as well. It can’t be solved this way, at least until the whole system is upgraded and we can have shapekeys live outside of the mesh data, or use external objects as shapekeys.
Hopefully, it will be doable soon using library linking : it should be possible to link in any number of flowers from a rig file, and animate them independently. Right now even 3.0 alpha does not allow overriding these properties (shapekey values, custom properties, etc) but let’s hope it becomes possible not too far in the future.
Geometry nodes is also worth looking at in the 3.0 release, since we should be able to use point translate in very flexible ways. Let’s see if we’re able to take point positions from an external object, that should do it, and it can be packaged into a node group and re-used on any number of flowers.