Modify a softbody during animation
After quite a bit of research I found out that:
The physics engine creates the springs (representing edges and if 'Stiff Quads' is set the diagonals of each quad) only once on starting a render animation.  The springs are stored in memory somewhere but there doesn't seem to be any way to modify them or reload them during a render animation.  So they can't be changed during a render.  However, if I render little bits (frames 1 to 2, then 2 to 3 etc), the springs are re-loaded at the start of each mini-animation.

But of course without any other intervention the springs are loaded from the un-animated mesh, so the physics is cancelled out at each step.  UNLESS, I discovered, the softbody cache, stored on disk, is copied before the end of a 'mini' animation (see bpy.app.handlers.frame_change_post), and restored just after the start of the next 'mini' animation (see bpy.app.handlers.frame_change_pre).

And where changes are made to the mesh, they need to be made between 'mini' animations, and corresponding changes to the softbody cache need to be made.  It is critical that the same number of vertices are in the mesh and the cache and that they are in the same order.

With help from http://blender.stackexchange.com/questions/15577/how-to-extract-convert-data-from-blender-cache-files-bphys-into-a-human-readabl I created a utility to read and unpack the disk cache, allow modifications then write the modified cache back to the same location.

Unfortunately this procedure means that each frame is rendered twice (e.g. frame 2 is rendered during the animation of frames 1-2 and during the animation of frames 2-3) but there seems no way around this.  It would be wonderful to be able to suppress rendering of the last frame in the range, but I haven't seen a way to do that.  Animating from frame 1 to 1 and then 2 to 2 etc would obviously only render each frame once, however there is no room for the physics engine to work.

If I was simply looking at animation in the 3D window (not rendering), I found that toggling the edit mode in the frame_change_post handler was sufficient to get the physics engine to re-load the springs.  Toggling edit mode during a render animation just generates an error, so the more complicated 'mini' animation approach needs to be used.

I am using Blender 2.79b on Windows 10.