If the contract is not guaranteed by the club then why should it be guaranteed by the player? For years in pro sports the player was essentially an indentured servant and the past abuses of players is well documented from permanent injuries, concussions, unpaid bonuses, retirement, etc. As much as I agree with you about honoring a contract, it also falls on the player to demand more or simply walk away from the deal if they are unhappy. And no club must meet any demand outside the terms of the contract so the NFL could simply say "no" and let the player retire from the game.
Bonuses have been required to be paid back before when a contract has stipulated that clause. But the teams roll over since it is usually just not worth the time to sue while another team is willing to pay the demands. Until that changes, then this will continue to happen. I would blame those holding the purse strings before putting the blame on players trying to make as much as possible within a very limited timeframe.