Check out Danilo Pinheiro's masterful work nilouco dot blogspot dot com
and Check out Andrew Hunt's excellent book The Pragrammatic Programmer. From Jason's book I learned alot about sculpting blendshapes, and from Danilo's online tutorials I learned alot about sculpting blendshapes. From Andrew Hunt's work I first learned about tracer programming (from what i understand from it so far, it is to create an iteration on code even before all details are incredibly fleshed out that iteratively gets closer to the end goal). I applied Hunt's method in my writing of the script below.
Here's a brief description of why I wrote the mirror blendshape script.
While I was sculpting the smile shape I had to do alot of joint binding and sculpting and copying mesh and sculpting and lots of vertex moving and soon I found that both sides of the blendshape were not symmetrical. I had tried in the past to use the standard delete one side and mirror the mesh but then I would have to merge the poly, and i'm pretty sure that the blendshape would no longer be working with the original shape.
So I decided to write a short script to mirror the blendshape. Its currently pretty slow, but its a decent start. If you take a look at the image i posted, there is a low poly face sculpt I had made (approx 1700 faces). You can see before running the script and after running script (approx 3 minutes). Notice what happens on the mouth area.
I've included the current iteration on the script
naMirrorBlendshape.mel Hope you can find it useful.

Happy Wednesday,
Nathaniel