What this widget does is loading a stylesheet based upon the outcome of a microflow (and if the MF does not provide a stylesheet, fall back on the default as configured on the page where the widget is configured. My primairy objective while creating the widget was indeed a different styling for different tenants in multi tenant environment (that's why you can also use the url that the client uses to connect to when there are multiple Mendix App URLs.
When a new stylesheet is added, the default is removed. So your workarround does indeed work to use lib-a.css on one page and lib-b.css on the other.
If you have a different usecase and cannot manage within the current implementation of the widget, please file a ticket on GitHub and I will dive into it. See: https://github.com/rik-bos/StyleSheetSwitcher/issues
For small differences within pages, the solution of different classes per layout (or even page) is indeed recommended to decrease the load. The widget will create a MF call to the server for each new instance (so for each style change) and the browser will try to load the new stylesheet (from cache if possible).
And the stylesheet switcher does indeed need the login process to work as far as I know. To my knowledge it is not possible to flip flop like you want. But maybe the maker of the widget can chime in here (Rick Bos) to give you a definate answer.
I noticed that the documentation in the appstore is non existant. On github you do find the documentation. Gives you some insight about the inner workings of the widget.
Instead of using the StyleSheet switcher widget, here's an alternative that should be pretty simple to set up: