There's too many real life variables to account for. Thus, it must be downpowered for both gameplay reasons, and to account for those variables. For example, even if you hit the armour at a 10 degree angle (90 degree being straight on) it'll do full damage.
Also, the ranges ingame are scaled down slightly. The SIGHTS on the piat and bazooka are made to hit around 60m, this is on flat terrain. For the panzerfaust, its made to hit at 23 meters. Aiming below the sights will make you capable of hitting further targets.
However, I do not quite like how they do less damage after exceeding maximum range, even for gameplay reasons. The maximum range in real life didn't mean it couldn't hit targets beyond that, just that the chance of hitting targets beyond that is less than 50%. The piat for example was also issued with mortar sights for ranges beyond 300 yards.