It turns out this function doesn't get called when "whom" is the same, but "mode" is different. (e.g. when the ship has the main nav buoy targeted, switching compass mode from 'current target' to that same nav buoy). I'm not sure this is by design but I'd expect the event to fire if the compass mode changes. The in-game effect was that while cycling through the targets, printing out each target (think talkative space compass), it wouldn't print anything out when the mode clearly changed (from a + to an N).. slightly unsettling