Yes I thought about morph targets, but it looked too much of an hack for me.
I am thinking about another thing too: "stick bone to this line (or to this point or whatever possible)".
The animation depicted in the first gif does actually work - the one named "bone rotation" - but it's a weird way to do such things.
I tried animating it in the "natural way" (the way pistons, rods and crankshaft work in engines), but I wasn't able to make a complete cycle.
I exported the figure and the sequence in the file attached to this post. Putting five keyframes as I did in the attached sequence results in messing up one good half of the animation.
The problem here is keeping the final bone always (and perfectly) aligned to a particular straight line.
Take a look to the animated gifs in this page:
http://auto.howstuffworks.com/engine2.htm. These (very well done) animations are almost perfect, but they suffer from the same alignment problem (you can notice it better if you pay attention to the piston's edges and to the reflections, while the piston reaches the lower limit).
I think that the program used to make those animations lacks of that "stick to this line" feature (or maybe it was there and the author did not use it).
About messing up the animation I attached, I think that Steve has recognized the problem at a glance, and hopefully it won't need more than a minute to fix that.
I don't really know if a "stick to this line" feature would be easily feasible, but I'd love to have all three new features while rigging and animating (bone lengths keyframes, detachable bones and "sticky" bones).
Anyway I'll go on having fun Anim8ing the way I can, I believe there are always new and interesting workarounds to do the trick with the gear we already have.