Several different protocols include something called a toggle bit. This means that each command has two or more different forms. Some protocols (e.g. RC5) alternate the toggle on each key press, while others change the toggle to indicate a start or end frame.
An alternating toggle lets the device receiving the commands distinguish between a long press of a button and two short presses. For example, if you press and hold the '1' button the remote continuously sends repeats of a single form of the '1' command. But if you press '1', release it and press it again the remote will switch to the other form of the command for the second press.
When you learn such a command you are capturing just one form of the command and every use will send that same form. If you use that learned signal and press the same button twice in a row, the device receiving the signal will see that as one long press rather than two short ones. For keys, such as digits, where one long press has a different meaning than two short presses, that gets quite inconvenient.
With OneForAll type remotes, using an upgrade or KeyMove will solve that problem.
For some of these protocols, for some models of Pronto remote, there is a condensed encoding of the Pronto Hex that will solve the problem.