So many variables go into making a call. The ref has to determine in a microsecond if the hold impeded the route and thus affected the play. He throws the flag at the point the hold is being made, not later after seeing if the ball was overthrown or not.
Also, you have to take into account causative effect here...that hold could have been enough to alter the entire play and that's why PM threw it away. All the ref can do at that point-in-time is assess if the hold impeded the route, and from his vantage point in that miniscule amount of time to make an evaluation he determined it did impede the WR's ability to make the play.
They have to do that on each and every play, not sit there and go, "How did I call this earlier in the game? Maybe I should take that into consideration." Each play is different, and the ref has different vantage points. You have to call these in a vacuum...there is no other way.