With a bit of evil trickery, I managed to merge the Commons <code>uselang=</code> language trick with the ULS so that it can be made to "work" even for anonymous users. (Strictly speaking, this uses the ULS as an UI for the Commons language trick).
* it relies on being able to <code>wm.config.set</code> the (possibly redundantly) initialize the ULS; and
* it relies on being able to simply overwrite wm.uls.changeLanguage with another function.
This seems brittle, but useful enough that there should/could be a proper hook in ULS to implement anon user behaviour? (By (a) turning on the selector as though wgULSAnonCanChangeLanguage were true and (b) specify what happens when an anon sets language).