I think a character can't tell, but when he rushes towards an opponent with reach, he should know that it's a possibility. As for disengaging from a fighter or other creature with a special power, I think that the surprise is part of it.
This means that, for PCs, I wont hint at the fact that the creature "appears able to attack you if you disengage" or some such obvious declaration. I'll let the players figure it out. I don't think I would describe an opponent as being obviously expert in combat, because this can mean many things: does he hit hard, does he hit often, is he good at dodging, does he have other special abilities, etc... or does he have Sentinel or Polearm Master. I'll just let the players be surprised. After one OA connects with one PC, all the players will know, so it's no big deal, it's a one-timer in an entire battle. And since this kind of ability is rare, allowing the players to know advance kind of blows it.
For NPCs, unless they know the PC for having seen him in combat, I would probably send the NPC against the PC knowing that he'll suffer an OA because I consider that Sentinel and Polearm Master feats are rare and unusual and one would not expect such abilities in most opponents. In a given battle, once one NPC suffers the OA, I'll assume that all NPCs know about this, unless the PCs are facing constructs or other mindless creatures. Even animals would learn quickly about something like that IMO.