You need to separate the narrative effect from the mechanical effect.
Whether or not the weapon makes contact with the defender's flesh is flavor text you narrate depending on how much stress you take after all the math is done. A failed defense, mechanically speaking, that gives you 2 stress and no consequences is a successful defense, narratively speaking. You took stress ("Phew, that was a close one!"), but the sword clearly didn't actually hit you, otherwise you'd be hurt and bleeding, i.e., taking a consequence.
Same thing with a shield--it does most of its work when your defense fails and you can't get out of the way or parry the blow completely. It's -not- designed purely for parrying (except perhaps bucklers), it's designed for blocking and absorbing blows. You take the hit (i.e., you didn't get out of the way), and the shield acts as armor by stopping the bullets from doing real damage.
In your example, it's the difference between, "Okay, your defense fails by 4 shifts, and he's wielding a Weapon:3 automatic, so you take a 7 shift hit, you have to take a Moderate Consequence of BULLET IN MY ASS to avoid death" and "Okay, your defense fails by 4 shifts, and he's wielding a Weapon:3 automatic, but your riot shield is Armor:3, so you take 4 stress, with the bullets impacting the shield and your ass completely unbulleted."