Saving a bunch of undo's would take up extra memory.
It has to have a limit somewhere.
He could make it save it to a local file, but that would take time to load each time.
Undo/ redo is freakishly hard to get right to begin with, should it remember what was in the image editor, should it remember the redo that you just um undid, etc.?
Actually, I had an issue that I found out hours after, and had to undo at least 400 changes once. It works fantastic... and ALL that information is stored in the 'undo' system, so that C2 knows HOW to undo, or re-do the changes when you want to. All I'm asking is that they simply display this information when it does the undo\redo, rather than hiding it from the user.