Constraint to 'lock' IK controllers position

I made some test with drivers to make a walk cycle automatically move foreward.
The idea is: the foot on the ground controls the movement of the whole body. When the foot bone goes backward the drivers make the root bone go forward to compensate and keep the foot still. A simple animated custom property on a controller bone says the driver which foot is active, alternating left and right.

Here is an example with the drivers:

In the walk cycle I animate the feet bones, but when played with the drivers active the foot remains still, moving the root bone instead, avoiding foot sliping without having to manually key frame the root bone position.

I thought it could be useful having a more generic constraint to allow to do this without drivers. A kind of “Lock IK Controller” constraint… in this case would be aplied to the root targeting the foot and would calculate the position of the root based on the foot position. The constraint should have the possibility to have multiple targets ( to remain a generic implementation of a concept ) and the possibility to animate which is the active one.
I would like to try to implement that… but I would like to know by you if this is really a good idea.

I hope I was not too confusing