It should automatically skip reflogs created by undo itself, so git undo; git undo be equivalent to git undo 2, and for undoing undo there should be seperate git redo.
I agree with that. So you could undo step by step without thinking about the number to put next to your undo command. It seems a bit trickier to implement, though