Obama is basically controlling the Republican talking points. They want to sell this on the economy and their base wants them to talk about gay marriage. Obama then moves onto the economy, the Repubs play catch up. And so on and so forth. Obama basically takes the ball and keeps changing the subject and there's nothing the Republicans can do about it.
Ironbite-brilliant political strategy.
Obama is controlling the Republicans' talking points because they are stupid enough to allow him to do so. When Obama was elected, the GOP's base flipped their fucking shit, as most of you will recall. Whether this was over his race, or over his perceived political stance, I will leave for you to decide. But the GOP politicians figured that if they expected to stay in office, the party and its members would have to oppose Obama on every conceivable issue, regardless of whether or he was actually being reasonable or conciliatory. The Tea Party proved this theory to be partially correct, as in many Congressional districts, those Republican representatives who were perceived as being insufficiently conservative (read: insufficiently anti-Obama) were purged.
So while this may be a great political strategy on Obama's part, the actual effect it will have on the governance of the country will probably not be so great. That's not necessarily Obama's fault, it is simply a reflection of the fact that a majority of Congress refuses to work with him. Whatever the Republicans' true feelings are on a personal level, they are afraid that they will lose their jobs if they are seen by the public to be cooperating with him. They are treating him like that one "uncool" kid we all knew in middle school: he may have been an okay guy on a personal level, but no one wanted to be considered his friend for fear that it may damage their social standing.
This is what U.S. politics has been reduced to. Fucking junior high bullshit.