You can use minibuffer history search to find a matching item via M-r. For example, to find the previous history item beginning with the letter 'a':
M-x M-r ^a Enter
Note that this is a regexp search, so you need to prefix the search letter with the ^ regexp metacharacter to force matches to the beginning of matched history items.
I'm not aware of any built-in functions, but here's a quick & dirty one:
(defun my/transpose-line-around-point (p)
"Transpose text preceding line around POINT."
(let ((line-beginning (save-excursion (beginning-of-line-text) (point)))
(line-end (save-excursion (end-of-line) (point))))
(transpose-regions line-beginning p p ...
There's no built-in command to insert a character before the point, presumably because any key binding for it would have to include at least one key stroke in addition to the character, and if you're going to type two keystrokes then the feature already exists: SPC Left or SPC Ctrl+B.
There is a built-in command open-line to insert a newline before the ...