Not sure about point 1, but if I understand correctly point 2 it's an issue I've been thinking about lately. When setting the "onSelect" callback in the widget options, I noticed that it was getting triggered on every page load after having selected a theme. I believe that the expected behaviour is to trigger only after the actual select from the widget, and not on every successive theme load (such as on page load).
I found the cause, it was because when the theme is loaded either from the cookie or from the "loadTheme" option, a click is triggered on the widget, causing the onselect event to trigger also. So I deleted the click trigger and modified it so as not to trigger the onselect event. Here is my test case on jsbin:
http://jsbin.com/ehoja3/9 ( = original themeswitcher widget code)
http://jsbin.com/ehoja3/8 (my code)
Is the themeswitcher widget to be found on the repository on GitHub? If so I can push a fix, but after looking over the repository I could not find the themeswitcher widget code.