The "direction" of the damage is treated as coming from wherever the source entity is now, not where the attack was fired from. This is most (and only?) visible with TNT explosions: if Player A sets TNT and Player B is between A and the TNT, B can only block the explosion by turning his back on the TNT and facing towards A! And a player cannot block TNT he himself set, since the source is the player himself and so has no "direction" relative to that player to be tested.
This can be tested easily enough by seeing if the shield loses durability or not from the explosion.
Is this still an issue in the most recent versions (currently that is 1.10.2, or 16w42a) of Minecraft? If so, please update the affected versions and help us keeping this ticket updated from time to time.