This kind of movement is difficult to achieve because the bone hierarchy only goes one way. It can be done perfectly using a bunch of constraints, eg (project file requires 3.7 beta, sorry):
http://n4te.com/x/4942-rotate-bone-either-end-nate.spine
Loading Image
It's not simple though:
Loading Image
Loading Image
FWIW, all these selected keys are the same, as are the two columns of keys between them:
Loading Image
One bone is rotated, the other follows, then the constraints are flipped, the other bone's translation and rotation set, and the other bone rotates, then repeat.
You might be better off faking it. Rotate one bone, then hide that bone (ie hide its attachments), show another bone (ie show the same attachments on another bone) positioned at the tip and pointing the other direction, rotate that, repeat.