Well, if you figure out a way around the circularity problems, you will need to figure out a way for the cps to not move with the bones once you move the cps (move cps, bones move to new location, cps follow the bones movement).
I would think creating a plugin to do this in the modelling window would be easier to figure out. Create groups with the same name as the bone you want to move, plugin copies pivot to the bones start position and the end position would be the start position of the next bone in the chain. If it's the last bone in the chain, the bones length and rotation remain the same or a group can be used.