McCaffery is exactly what was meant by a Heisman trophy winner: the best player in the country overall. But he's a rising junior and Henry is a senior. My guess = they figured that McCaffery would have his chances in the future and Henry had a great season on a good team that play ed a hard schedule. So give it to Henry.
Now the problem with this is obvious; there's no guarantee that McCaffrey can duplicate this year in future and he's the better choice this year in the spirit of the award. Still, I suppose everyone thought that Stanford is unlikely to fall on its face next year or the year after. Soooooo … let the kid wait. It's subjective anyway.