In \XF::asVisitor the global language fetched via \XF::language() is not set/reset when the visitor changes. This may effect the language and importantly the timezone which needs to be loaded from the visitor entity.
Note that this is handled via an additional argument to the asVisitor method to attempt to avoid any potential differences in behavior (it defaults to not changing the language/timezone). This was generally just something we expected to be handled outside of this method (which was primarily for ensuring the correct user was selected for things like permission checks, etc).
Also worth mentioning that generally speaking, we don't change method signatures in third point/stable releases because it can create compatibility issues with add-ons. The XF object is pretty much the one exception to that because there's zero expectation that its extended (and zero opportunity to within XF). There is one very-much-theoretical way you could do it, but I think it's reasonable to say that it's well outside the scope of what's expected.