There is a good reason why Sanji was knocked out by Zoro. He wouldn't have survived it, he could barely stand. Now imagine if a simple stike to his torso is enough to knock him out then taking on luffys full damage and pain would have killed him for sure. That doesn't mean Sanji wasn't loyal or nobel, it just means that zoro saved sanjis butt right there and then.