This deal works well for all sides. James Harden is 22 years old, an Olympian and an all round excellent basketball player. Houston has found it's #2 player while retaining plenty of salary cap space to go after a big name free agent like say....Andrew Bynum next summer to complete their own Big 3.
For Hardin, keep in mind that Hardin's next contract max value is dependent on the amount he makes on this one. I really can't fault a player for wanting to get paid max dollars on their first big contract.
As for OKC, as bills0 said, this situation has been anticipated for a long time. The CBA is designed to prevent teams for stockpiling players without paying a huge penalty. With unlimited resources, OKC would love to keep Hardin. Instead they acquire draft picks which they can turn into role players on cheap rookie contracts.