Most charges happen with a defensive player standing in the lane, while the offensive player has left their feet going for a layup. Offensive player, many times after the ball has left his hand, makes contact with the defensive player, defensive player falls backward, and a charge is called. I would not call this play a charge on the offensive player. If you didn't have the charge call here, what would happen is that defensive player instead of remaining grounded hoping to simply get ran over, would instead jump with the offensive player in order to contest the shot. I'd rather see that.
You can stop people by attempting to contest their shots. I see what you are saying in situations where you are talking about guys dribbling into other players. I'm more talking about after an offensive player has left his feet, that there can no longer be a charge called in that situation. It's really no different than the halo rule under the basket, but I'd expand it to the entire court. Once the offensive player has left his feet, defensively you don't get a charge call there.