As Ihor pointed out, delete-char deletes two letters.
Can someone take a look and evaluate if this is issue with delete-char?
I simplified the recipes as shown below.
#+begin_src emacs-lisp
(defun emacs-bug-reproduce-45915 ()
"Reproduce bug#45915."
;; (gnus-read-ephemeral-emacs-bug-group 45915)
(interactive)
(with-current-buffer (get-buffer-create "*temp buffer*")
(erase-buffer)
(require 'org)
(orgtbl-mode 1)
(insert (format "emacs-version: %s, org-version: %s\n" emacs-version
org-version))
(insert "| 1 |"))
(switch-to-buffer-other-window "*temp buffer*")
(execute-kbd-macro (kbd "M-< C-n C-f C-f"))
(message "I will hit <S-return>.")
(sit-for 2)
(execute-kbd-macro (kbd "<S-return>"))
(sit-for 2)
(message "I will hit <delete>.")
(sit-for 2)
(execute-kbd-macro (kbd "<delete>"))
(message "Two letters were deleted unexpectedly."))
;;; (call-interactively 'emacs-bug-reproduce-45915)
#+end_src