The fact that $this->getTarget() sometimes returns a User object and sometimes doesn't is confusing and caused T208398. It would be nice if there was a getTargetUser() method, or if the hacks that rMWeab725e3f16d: Follow-up d67121f6d: Blocks can apply to non-User objects too copied around were in some way centralized or made less necessary.
At a higher level, the concept of a block target and the concept of an "actor" aren't quite the same, but seem related. An actor can be a logged-in user or an IP user. A block target can be a logged-in user, or a single IP, or an IP range, or a block ID (for autoblocks).