I agree that Shinn was following orders, but those orders were HIS OWN. Do not confuse orders from zaft with his revenge for Stellar's death. He was analyzing freedom before Dullindal made that speech and before AA was declared an enemy. As far as the punch, Athrun was probably suprised that Shinn would say that Athrun wanted him to lose, hence the monstrous smack to the face.

Shinn's conversation with Athrun was a mere taunt. Athrun has been telling them over and over again that Kira was not the enemy, and it was obvious that Shinn was about to get smacked in the next minute after saying "he got Athrun's revenge as well."

Shinn-lovers whine that no one understands Shinn blah blah blah, but in this case Shinn did not know what was going through Athrun's head even after Athrun telling him that Kira is not the enemy again and again and again AND AGAIN. Even knowing Athrun's relation with Kira, he chose to be arrogant, and as a result, his face suffered dearly.