FWIW, If you use the key commands, the first and third issues are avoidable -- though, I have run into all of the issues when using the mouse.
There's a key combo for that opening the find and replace menu; ctrl + cmd + c. Then you can tab through. Hitting enter will "replace and find next", shift + enter will "replace and find previous."
By default, there aren't any explicit key combinations for specifically replacing the selected text / replace all / replace and find {next, previous}. But, you can set them in Xcode's preferences, under the Key Bindings tab (in the Edit -> Find subtree). I hijacked cmd + r (from "run") for "replace and find", shift + cmd + r is used for "replace all".
There's a key combo for that opening the find and replace menu; ctrl + cmd + c. Then you can tab through. Hitting enter will "replace and find next", shift + enter will "replace and find previous."
By default, there aren't any explicit key combinations for specifically replacing the selected text / replace all / replace and find {next, previous}. But, you can set them in Xcode's preferences, under the Key Bindings tab (in the Edit -> Find subtree). I hijacked cmd + r (from "run") for "replace and find", shift + cmd + r is used for "replace all".