Can F-Curves be used to define interpolation between keyframes?
Maybe using the Breakdown Tool could help you to find the right curve / pose quicker? It is one of the In-Between functions Blender has, see the section In_betweens here: https://www.blender.org/manual/de/rigging/posing/editing.html.  The workflow would be like this:

Set start and end keyframe of your pose. So the moment when the punch starts and the moment after the hit. Then scrub to a frame in between the two. With the very sophisticated example here it looks like this:



If I take my example, the X F-Curve should have a keyframe value lower than what it currently has. Or in other words, the pose should be closer to the starting pose, than to the ending one. The breakdown tool allows you to do just that: In the 3D Viewport, hit Shift + E, and then move the mouse left and right. The extent of your 3D Viewport acts as a slider, so if you move the mouse to the very left, you're at the starting pose, on the right at the ending pose. Your model will now deform either towards the starting pose, or towards the ending one. In your case, you wanna go closer to the starting one. After clicking, you can add a keyframe for this pose (or if you use Auto-Keying, that keyframe has been created already):



It's your choice now if you want to set the end value to vector (can be done in Dope Sheet or F-Curve Editor:



If you're not happy with the pose, go to the same keyframe and use the breakdown tool again.