I have warden on high priority and i join the game and i don't get him even if no one else picked him. no one on either team got him so why didnt i get him.
i agree unless other people have it as well. but it doesn't seam to work that way. also imagine everyone and their mother selects new characters on release though no one getting it is kind of weird.
I've kept Geist, Paradox and warden on high prio for a while now and it has always picked from one of those so it's unreliable at best
EDIT: Adding an image of my usual roster for more info
I think this is probably the case. There are a bunch of open issues related to people disconnecting when they tried to join a game, as well as threads open about lobbies not loading with all the people.
I imagine with this what is happening is that the matchmaker wouldn't put you in the lane/match it gave you with the character you have at high priority. It does try to balance lanes in terms of skill and has modifiers for heroes on your mmr. So this may not be the matchmaker not seeing you'd prefer a different hero, but not finding a match where it could put you on that hero.
I play Dynamo on high priority and have 3 carry characters on lowest priority and it makes the system give me Dynamo in every single match with a 1/50 chance (to current date) of getting any other chosen class. the odd stacks because the carry classes are always other people's top priority.