You're getting something wrong. Check it yourself – take a stack of, say, a hundred Efreet, and take a single Peasant, remove the retaliation from the Efreet, and have the Peasant attack. According to your logic, the Peasant should die. But I assure you, it will survive.
Because how much damage can a Peasant inflict on Efreet? That's right, very little. Let's say it's one. In that case, the Fire Shield will deal 1/3 of a point of damage to the Peasant (plus some modifiers). How much health does the Peasant have? That's right, more than the Fire Shield's damage.
That's how it is.
Let me try to explain my point again: let's say we have 100 Efreet and 200 Nightmares. The Nightmares won't be able to kill the Efreet in one hit, and they will suffer tremendous losses from the Fire Shield. But if these 200 Nightmares attack, say, 20 Efreet, and kill them in the first hit, then the damage from the Fire Shield on the Nightmares will be less. Because 20 Efreet have less HP than a hundred – therefore, the maximum damage that can be inflicted on them is less, which means the Fire Shield will hit the stronger stack less hard. Because if all the Efreet together have 800 HP, and their opponent deals a minimum of 1000 damage, then the Fire Shield will deal 800 damage, not 1000 or more.
It's a slow unit overall. The Efreet have a much larger speed modifier, and we don't even need to talk about Chaos Demon.