It's very simple.
6 months ago, he needed to make sure that votes in the primary would go to him, and not to Dodd, Edwards, Kucinich, etc.
Today, he knows that we won't vote for McCain in the general, and he removes a hammer the Republicans could use against him.
Yes, it's dishonest and craven, but that's the game.
Obama is just playing the hand that he has.