How are "undo" and "repeat/history" supposed to work on Blender 2.5?

I’m new to Blender 2.5, and I’m having some difficulty in grasping how the undo and repeat/history features actually work.

Beginning with Undo, here’s an example of what I see on a reasonably current build (2.52.5, r29996).

  1. Translate cube +4 units on Y axis.
  2. Select a different object.
  3. Press Ctrl-Z. Selection jumps back to the cube but doesn’t undo the translate operation.
  4. Press Ctrl-Z again. Now the translation is undone.

Ok, that seems to indicate that non-modification-related actions consume space in the “undo” stack. I can respect that. I don’t want that–but I can respect that others might want that behavior.

But here’s a variation of the above procedure that I don’t understand.

  1. Create a new project. Note that the active tab of the Properties window is “Render”.
  2. Translate the default cube +4 units on the Y axis. Note that the Operator window shows the details of the operation.
  3. Switch to the “Object” pane of the Properties window to visually examine the transform settings.
  4. Press Ctrl-Z to undo the translation operation. Note that all that happens is that the Operator window and history list are cleared.
  5. Press Ctrl-Z again. Now the translation operation is undone.

So what actually happened in the first Ctrl-Z instance? What actually got undone? Interestingly, if I then Shift-Ctrl-Z two times, the first one re-does the translation, and the second one puts something on the undo stack, but I don’t know what; all I know is that it takes two more presses of Ctrl-Z to undo the re-done translation.

Now, related to undo is the repeat/history mechanism. The “Repeat Last” button seems to make sense: repeat that last action that exists in the “history” of actions. However, one press of Ctrl-Z seems to blow the history list away. So I’m not sure of what to make of that.

At first glance, I had hoped that the “History” button/list was a way for me to go back in time and adjust the parameters of an operation, but it doesn’t seem to be that. Rather, it seems to be just a way to re-execute a selected action in the history list. But even that didn’t behave as expected. For instance:

  1. In a Right Ortho view, press R and rotate the default cube 45 degrees on the X axis.
  2. Click this History button and then click the Rotate command in the history list. (Or simply click the Repeat Last button.)
  3. Note that the cube rotates 45 degress on the Y axis. Hmm. That one seems like a bug to me, but then again, I’m not quite sure how things are intended to behave.

If the intended undo/repeat/history behavior is documented somewhere, would you please point me to the documentation? Failing that, would someone please describe for me the intended behavior? Understanding the intended behavior will help me determine what (if any) bugs I should file or usability/discoverability requests to make.

Thanks!

– Keith