The age thing is a long standing Hollywood tradition. One has to imagine they are the right age. Jimmy Stewart was about 20 years too old for the character he plays in Vertigo.
Re: “Vertigo”, that seems hard to believe. I thought the character was supposed to be late 40s (Stewart was 50), around the same age as the Gavin Elster character (Tom Helmore was 54). It doesn’t fit that they would’ve been late 20s/early 30s. A middle aged man using Stewart as a vehicle to kill his wife so he can supposedly run off with the younger mistress in her 20s.
Although I’ve not read the source material, so I can’t say what the author had in mind. Of course, clearly Stewart was too old for some of the military films and the Westerns, but still did an excellent job.
Stewart’s age was even more ridiculous when he played Lindbergh in “Spirit of St. Louis” a couple of years earlier. Pushing 50, he played a 26-year old.