No, of course he shouldn't say "you're an idiot, John."
He should, however, have made clear how liberal Kerry is across-the-board on foreign policy. He should have used his Senate record. He should have said much more than he did.
Bush was too defensive and too repetitive.
How across-the-board do you want him to get in a thirty second rebuttal? He is a broad thinker, not nuanced like Kerry. Kerry was caught up in the quagmire of his own rhetoric, while Bush's repetition was effective. We know where he stands and not Kerry (or at least I don't).