Just noticed this and thought I’d pop it straight in here.
While searching and replacing, I was just going through and incrementally checking each replacement before making it, going back and forth between ‘next’ and ‘replace’. Possibly as a symptom foretelling some oncoming RSI, I accidentally hit ‘replace’ again, which had the effect of inserting the replacement a second time at the point where the cursor was.
Also, should the behaviour of search and replace be that the selection jumps forward to the next instance of the search query, meaning you can just hit replace, replace, replace…?