I was playing with giants on a modded 1.7.10 server last night, which had just had its difficulty changed from easy to normal, and giant were killing me in 1 hit. However I was wearing full diamond armour, and according to the Minecraft wiki (and testing on easy I had done previously), they shouldn't be killing me like that. Tested it on singleplayer, same thing happened. Tested on a non-modded server (while I still had all the mods installed), didn't happen. I tested it with completely vanilla Minecraft, not even OptiFine or Forge, didn't happen. I then tested this with just Forge on 1.7.10 and 1.8 singleplayer (using the latest Forge), and the damage I would take from any mob appears proportional to how damaged my armour is. So, in fully repaired armour I take the minimum damage, but if my armour is about to break, I take a good deal of damage.
However, when armour gets rather damaged, the armour bar doesn't change, implying that only the type of armour worn, and not its damage value, should be taken into account when a player takes damage.
I can't find anything on this, so I have no clue if this is an intended Forge feature or a bug.