If my highlight starts on an open parentheses character and the type a new open parentheses the cursor is placed before the new character I just typed rather than after it.
I'm using 10.6.1819.0 and I have "Surround selection on / * ( { and #" turned off.
Move the cursor to the end of the line and press Shift+Back Arrow to select the final characters of the line. Keep highlighting characters until the open parenthesis is selected. You should now have (&osvi); selected with the flashing caret between the space following GetVersionEx and the open parenthesis character (. Now type a new open parenthesis character. The flashing caret is placed before the open parenthesis character. So if I were to retype (&tmp); I'd end up with the following line of code.