Well, it used to be that you could simply turn highlighting for an object on and off. But that might have started causing problems, when people started adding multiple event handlers, etc., where multiple things are trying to affect highlighting. So they probably added "PushHighlight" and "PopHighlight" so that highlighting wouldn't be turned on by one handler, only to have it turned back off prematurely by another handler.
Just a guess, anyway... That's a typical reason why someone would make a change like that.
I'm not sure about the JoinEntity, except that my first guess might be something to do with adding segments to polylines...? Although that would be an odd thing to stick on the Entity class; I would expect something like that to be on the Curve class.