Truman wasn't thinking about China when he made the decision regarding nukes, he was thinking about the Soviet Union. Setting the precedence of using nukes against a Soviet ally who didn't attack the United States means the Soviets can attack our allies who didn't attack Russia. Today we nuke China, tomorrow they nuke France (or the UK, West Germany, etc.). In fact, the Soviets would HAVE to nuke France, et al., because if they didn't do so then every country would think that only the Americans are willing to use nukes to defend their allies and nobody would join up with the Soviets.
MacArthur is a myopic general who can only see the battlefield right in front of him. Fortunately for us, though, it was a man who can see farther who was in charge.