Forgive me for not taking your word for it, but you're not exactly unbiased.
Excuse me, but the code is as unbiased as you can get:
Excerpt from ROHUDWidgetPeripheralPawns.uc, function UpdatePawnList
if ( NamedPlayer != none && PlayerOwner != none && NamedPlayer.PlayerReplicationInfo != none
&& NamedPlayer.PlayerReplicationInfo.Team != PlayerOwner.PlayerReplicationInfo.Team)
{
EnemyPawnList[EnemyPawnList.Length] = NamedPlayer;
}
The condition that adds pawns to the valid list only accepts them if the Team variable of the tested pawn does not equal the Team variable of the controlled player (The bolded part of the code). This is immediately after the function clears the EnemyPawnList array, and immediately before it sets a quarter-second timer to repeat the function and ends.
If friendlies are getting on that list, there is a bug somewhere.