In the "had served" version, I feel the prose is mainly a report on the debate; for all we know, Stevens may now be live or dead - all we know from the prose is that, at the time of the debate, he spoke and that he had previously been in the Iraq war.
In the "has served" version, we may deduce that Stevens served in the Iraq war, that he spoke in the debate, and that he is still alive.
In the "served" version all we know is that he served in the war and that he spoke in the debate; the prose gives no information about his present existence or not. This case is very similar to the "had served" case.
The point about the war being a few years in the past is largely irrelevant. The distinction between has and had is not determined by some arbitrary choice of time scale. For example, "By the time he had eaten dinner this morning, he had seen the eclipse."