You need to think about the timing.
Player X, college senior joins the NBA at 22. He plays 4 years on his rookie contract - he's 26. If he signs a 4 year contract, his next contract starts with him being 31 years old. Is he still worth max money at 31? History says likely not. If he's on a 5 year max contract, he's collecting 17.5 million in that 5th year. By comparison, 31 year old players starting a new contract, might only see $10 million - even if he's still really good, as teams don't expect him to be as good at 34.
And of course, there is alway the potential for career limiting injuries...