Some reasons given to do so are:
- If my language is not well-supported and the localization of my browser in my language is poor or nonexistent
- I'm using a shared browser
I don't know of any currently spoken languages that are not available in the browser's preference.
Using a shared browser seems like a red-haring to me. If you are using a shared browser in a country that doesn't speak your language, then the whole interface isn't going to be in your language anyways. Also, if it's a country with more than one language spoken, that should be accommodated.
The compromise is to provide a language switcher, but set the initial language based on what the browser provides. This is how it should be done with a language switcher, but is the switcher necessary at all? If so, why?