Prevent SQL Server Management Studio changing destination DB on restore
No and as you're aware this is a pretty serious accident to make. 

I'd suggest learning a little PowerShell. Why? Because that kind of restore is going to happen often, and you could script it into an agent job or one liner - and you won't make this mistake again. It's one of the great parts of scripting; reducing human error and improving the script each time rather than having to remember everything yourself. 

As for other suggestions


You can backup from an account on PROD that can only backup and doesn't have restore privileges. 
Never do just a restore. Always do a backup (with copy only) of what you're overwriting before the restore. Every time. (If you're extremely confident of your existing backups and can run a quick verify of them... eg that you've taken a log backup in the last minute or so and the log chains aren't broken and that the files are there... you may get away with that too).


I can tell you there's been a number of times I've been given specific server and database names, had them double checked, then had someone realise while its in progress that THEY were wrong and had mixed something up. Having a quick rollback on hand is a godsend.