The main difference is that Eduardo received a call for "simulating a foul", that can be overturned. Henry committed a foul, that wasn't called. it is that tricky "in the opinion of the referee" statement in the laws of the game. Everyone may disagree with the ref (Henry told him he did it), but "in the opinion of the ref"...