I've always believed that if a player had good defensive position, he would be less likely to be knocked off his feet my contact. A guy who makes contact trying to get into position is the one who would go flying, (and thus would be the one who should be called for the foul).
I also think that Rakeem has become a worse defensive player because we's become such a good offensive player and his presence on the court is thus so vital to the team. He tries to avoid fouls because he's irreplaceable. When he shared the position with Keita, they were interchangable, 10 fouls for JB to use. But there's such a gap between him and Obokoh offensively, he's got to play in such a way that he stays in the game and against teams with good big men, he's probably giving up nearly as much on the defensive end as he scores on the offensive end.