When you hit Ctrl+y or Ctrl+Shift+Z, the redo action is performed twice. This is because the shortcut is defined twice in the code: once in application.c as a case in the window_keypress_handler function, and once in swappy.glade as an <accelerator> on the redo button.
This does not affect undo, because it is only defined once as a case in the window_keypress_handler function and the undo button has no <accelerator>.
Introduced back in commit d7e7f2b.