What you're looking for is keyframe baking, which does exist. There are two baking operators on animation curves: bake curve and bake action. What you want to use is bake action. They are both terrible operations, in my opinion, but they get the basic job done... I will explain why later.
Select the object or bone in question and take note of the distance between your cycled keyframes (in my example I used 22). Make sure your curves are editable and do a spacebar search for "bake action." This will pop up an option window.
Set your start and end frames accordingly, then change the frame step to the distance between your keyframes (22 here). Click OK and your action will be baked. If you leave "Overwrite current action" unchecked, it will automatically add and activate a new action for the object/bone. This is basically what you're asking for, but here are some snafus:
This is my biggest pet peeve of this operation. So you spent some time scaling your tangents to get the right kind of curve and cycled it. Great, now you want to edit the positions of some of those keys. Well, too bad, because baking destroys tangents. It will automatically set tangent types to automatic. Again, this totally destroys your work and takes control away from the artist. The only case where this is OK is when all your tangents are completely flat and automatically weighted. Then all you have to do is select all, change pivots to individual centers and scale to 0 on Y. It's a terrible solution.
- All channels are baked simultaneously
This would be fine if you're doing pose-to-pose keying, where all keys are aligned to the same frames, but totally useless if you have offset curves.
- Automatically cleans keys
Automatically cleaning keys is bad because you want keys on each bake step, so this is not expected or appropriate behavior.
- "Bake curve" locks curve from all editing
Obviously locking the curve is out of the question.
You should try both baking operations to see for yourself what they do. They're pretty nasty if you ask me. Unfortunately, these are the only two options I could find.