because tf2 largely isn't centered around the "pro experience" even if the players are at the top of the playerbase. Comp is its own thing with its own rules, and "casual" gameplay is what the game is designed and balanced around. Comp usually bans about half or 2/3rds of the weapons in the game and imposes additional rules (class limits, no weapons pickups, etc). It's a completely different thing that happens to run on the same engine.
Most games you will play with 23 other randoms who you will never see again after a couple hours. And that is actually the problem - on an actual competitive team your entire team would be decent and everyone would be there to play seriously and get stuff done. But in public games you need some kind of fitness signal to figure out which players are going to be a waste of a team's scarcest resource. How do you tell that from a bunch of players jumping around a spawn room like monkeys for a minute during the setup countdown? Cosmetics. Plumage.
(and actually Valve have gone out of their way over the years to remove other potential signals, like sprays and chat...)
Plumage evolved in nature for a reason, it's still functional and important even though it's "cosmetic-only". Games are a social phenomenon and plumage is still important to them too and that still affects your gameplay too.
In something like TF2, I'd probably rely more on the player's name than what they were wearing. If I recognize the name (even if only in the context of the one match), and know roughly how good they are, I can have my mental preference of who I prioritize.
I usually play Deep Rock Galactic, which has some non-cosmetic ways to judge people's experience. Promotion(like prestige) of a class is indicated by a border color and number of stars, and indicates someone has played a character for promotion25 levels. Bronze stars are okay, silver stars should be decent.
'Blue Levels' are also present. They serve as an indicator of how many times that player has leveled up any* character. So, someone with blue level 100 and only one promotion star should still be considered experienced in terms of game sense, but not necessarily an expert on their character.
Someone with low 'blue levels' and no stars is just a greenbeard, and should not be expected to be great.
The TF2 player base is too big to recognize by name outside of smaller community servers (it's still about 100k peak and this is a fraction of what it was 10 years ago at its historical peak). Sometimes you may see one or two repeat players but mostly it's ships passing in the night and that's OK! There is something to be said for games that everyone is competitive for an hour and then everyone goes home.
There is a similar player level mechanism in TF2 but not tied to classes at all, just a blue level type thing. That works in the starter room, but it's not a solution for the "I have two seconds to choose which of these players to uber before that soldier finishes bombing me"/"I need to pick one of these players to pocket to try and stay alive to keep the uber up for the team".
Plumage works, you can instantly make a call that this is a default player and that one has cosmetics, or recognize the cosmetics of a person who has played well previously/who you gave a chance and they did something antisocial/stupid. Trying to identify a player name, finding them on the scoreboard, and then re-syncing with what has happened in the game in the last 5 seconds just isn't practical.
Like, TF2 has been f2p for 10+ years now, random HNers aren't going to come up with the magic solution here, this is how the game plays regardless of whether you think it should be. It's not a problem, and it's actually one of the least-exploitative MTX mechanisms on the market, but you can't eliminate the effects of cosmetics on gameplay in many situations because plumage is such an important social cue.
If you want an example of cosmetics that don't affect anything - Battlefield 1 has a fixed selection of guns and then each gun has some skins. Nobody else can really see the particular skin at range anyway so no real gameplay effect. This was done deliberately to allow the character design to be visually distinctive - a british medic runs around with crutches on their back for example, and the british scout wears a cape. Can't have that with cosmetics unless they're so trivial that nobody can tell they're there (BF1), or you go to great efforts to preserve character silhouettes (TF2). In BFV it's much much more difficult to tell the classes apart - any class can run around with a medic hat on for example! An elite skin can be any class - you have to visually identify what guns and items they're carrying, which is more challenging even if it's "just cosmetic" - a mere cosmetic gives you a tactical advantage, you know what your enemy is carrying and they have to guess about you.
And that's obviously because BFV was much more oriented around MTX sales, while BF1 focused on an "expansion pack" model.
So MTX clearly affects that aspect of game design even if it's "only cosmetic".
I feel like your arguments on plumage could equally be applied to lower-cost cosmetics, to the point where being able to recognize that someone is 'that specific Heavy', is more important than 'a Heavy with the limited-release Sandvich Holster', and probably easier/faster.
The holster is rare, and maybe you recognize that it's rare, but they could have just gotten it out of a drop and kept it. The Heavy with the funny flip-flops and sunglasses is probable more recognizable at-a-glance, but could have bought a bunch of cheap cosmetics for a few dollars on the market.
And in the case of keeping an uber ready, won't you have to stay pocketed long enough to learn if someone is a good or less-good choice? Even if it's raining hell on your position, you'd have a rough view of the Heavy and a kill feed that highlights the assists you're getting from them. What more is there to look for?
As for the Battlefield games you mention, my biggest issue in 5 was that all of the player models seemed to blend into the background. Most of the time, I wasn't able to spend brainpower trying to figure out who is which type of class, simply because I was too busy trying to figure out if some dull, misshapen blob was part of the map or trying to kill me. Combined with the general feel of the game (poor, imo), I was never motivated to spend enough time on it to get into anything serious. Haven't bought another Battlefield game since, and BF5 was on a steep sale at the time.
Most games you will play with 23 other randoms who you will never see again after a couple hours. And that is actually the problem - on an actual competitive team your entire team would be decent and everyone would be there to play seriously and get stuff done. But in public games you need some kind of fitness signal to figure out which players are going to be a waste of a team's scarcest resource. How do you tell that from a bunch of players jumping around a spawn room like monkeys for a minute during the setup countdown? Cosmetics. Plumage.
(and actually Valve have gone out of their way over the years to remove other potential signals, like sprays and chat...)
Plumage evolved in nature for a reason, it's still functional and important even though it's "cosmetic-only". Games are a social phenomenon and plumage is still important to them too and that still affects your gameplay too.