Problem: CentralAuthUser calls DatabaseBlock::insert, passing a DB connection to another wiki. The User instance inside DatabaseBlock does not know about that DB, and may load data from the local DB, causing confusion. This was the root cause of T260485, which has a workaround in place.
Solution: DatabaseBlock and AbstractBlock should always use a string as the target and a UserIdentity as the blocker. They should never create User instances.
NOTE: DatabaseBlock and AbstractBlock are designed to support "foreign" users (which are local actors referring to users on another wiki, using a prefixed user name). They do not properly support cross-wiki user instances.
NOTE: getBlocker() should return a UserIdentity instead of a User. This is a breaking change, but there is only one usage outside core, in the RegexBlock extension, which is trivial to fix.