The only way a defender can alter the natural progression of the striker is by charging with the upper body considering the arms are sticked to the body.
In this case, the defender has altered the striker progression without touching the ball. If he had done that by CHARGING with the upper body, it wouldn't be a foul. But the moment you use your arms, your pelvis and your leg to stop the progression of the striker without touching the ball first, it is definitely a foul.
According to the rules, it's not even necessary to have contact to be a foul. Imagine a defender that slides towards me. I jump to elude him and by jumping I loose the speed I had so another defender grabs it or it goes out of bounds or simply I loose the chance to shoot. It's a foul, and a penalty if that happens inside the area, because the defender altered my progression without touching the ball.
As Gerd says, a penalty is a boolean thing, it can't be progressive. I would prefer the refs to whistle penalty for all contacts and have divers and cheaters SEVERELY banned thanks to TV technology.
This would make matches a lot more exciting, defending more difficult and attacking a lot more fair. I would like that, though I understand it's a case of different tastes. That's mine.