McCain also insists he hasn't flip-flopped by voting to extend the 2003 tax cut, which he originally voted against. McCain's rationale is that he's against tax hikes. By his logic, a tax cut he attacked as unfair and unaffordable, once enacted, can never be repealed. I have never heard of any economist or policy wonk espouse a theory like this. The only possible rationale for it is to make McCain's two positions look consistent.
The big change in McCain is less direct flip-flopping than a complete reversal of emphasis. Where once he was discovering new liberal positions almost every week, now's he's discovering new conservative ones. In recent months he declared his support for teaching "intelligent design" in the schools and said he'd sign a South Dakota bill that bans abortion in all instances, even rape and incest.