The "memory" is stored as the parameters of a function. So, when you practice, you actually update this memory/parameters.
This is why you can use the same "memory" and achieve different results.
Think of it as
function muscleAction(Vec3d target, Vec3d environment, MuscleMemory memory) -> MuscleActivation[];
function muscleAction(Vec3d target, Vec3d environment, MuscleMemory memory) -> {actions: MuscleActivation[], result: Vec3d}
After executing the muscleAction function, through "practice", the MuscleMemory will be updated. function updateMuscleMemory(Vec3d target, Vec3d environment, MuscleMemory memory, MuscleActivation[] actions, Vec3d result) {
memory.update(target, environment, actions, result);
}
Sort-of like backpropagation.You seem to be objecting because it is not perfect recall memory at play? But it is more about appealing to "remembering how to ride a bike" where you can kind of let the body flow into all of the various responses it needs to do to make the skill work. And if you've never done it... expect to fall down. Your muscles don't have the memory of coordinating in the right way.
And no, you are not calculating and predicting your way to what most people refer to for muscle memory. Is why juggling takes practice, and not just knowing where the balls have to be going.