I have two issues:
1) from what I understand it doesn't try to use HttpRequest.UserLanguages to see if one of the available languages should be selected by default . It would select using that scheme if user hasn't overridden the setting manually using the webpart's UI. It could keep the info that user has selected other language from the UI at either the session or even better somewhere in user profile data. In the second case one could maybe show the selector only at the user profile page (or have separate dropdown-style selector there that persists the same setting) and have the webpart available but invisible in other pages so that user only selects language override from their profile (having option to keep a default setting to try to use the browser/OS preferred languages list)
2) I want some pages like blogs and discussions to show the same (the English stuff) and mainly have the front page and some manual/help pages be localized. If I put ASP.net script inside those webpages to change UICulture to English will the selector read/show that setting or does it keep its current value elsewhere and will turn my setting back again for those pages?
Alternatively would it work OK if I put the selector inside some pages (instead of the header) or use different header for some pages that doesn't contain the language selector? In that case would it keep the language for the session (if the control is missing at page X and at login page user has selected say Spanish) when I visit page X? Or will it show English (as I'd like to for those pages)? (the default lang of the site)