On the one hand, Hawkeye's not a bad character, and the movies have even managed to play up one of his defining traits from the comics, namely that he's the Avenger who's just a guy. Everyone else is standing there with magic hammers, vibranium shields, gamma rays, and whatever else, and he's got a weapon that's been around since the beginning of recorded history. It's even led to some pretty good moments and solid character beats for actor Jeremy Renner to have some fun with.
On the other hand, that has functionally rendered him useless for the rest of the team. Think of all the best Hawkeye moments in the MCU, and a pattern emerges that's built entirely on the idea that Hawkeye just pretty much does not need to be there. In the biggest fight in the MCU to date, when the Avengers split into two teams and throw down against each other in Captain America: Civil War, Hawkeye's major contributions include missing Iron Man with an arrow and casually introducing himself to Black Panther. Considering that he's taking the time to do said intro while people around him are growing to giant-size and destroying buildings with the power of Infinity stones, it's a pretty big indication that he knows he's not going to be affecting the outcome of the battle one bit. Black Panther even tells Hawkeye straight up that he doesn't care who he is, and, if he doesn't care, it's hard to figure out why we should.
The one big moment of character development that Hawkeye's been given over the course of four movies is the reveal in Age of Ultron that he has a secret family living on a farm somewhere, and that's just in there to set up up a fake-out where the audience thinks he's going to get a "he was two days from retirement" style death, only to have it happen to someone else. When your defining moment is that one time you didn't die, you probably didn't need to be there in the first place.