Yeah, baseball salaries have grown so quickly over the past 15 years that it's pretty misleading to compare pay rates on contracts that are even a couple of years apart.
But really, anyone who thinks the Cubs overpaid for Heyward because the value of his defense is overstated - what do you think he would have cost if he were instead an offense-only player putting up the same WAR (i.e. still a 5-6 WAR player, but with awful defense and all of his value tied to his bat)? Do you think $23 million/year would be even remotely close to landing him? I certainly don't; a 5-6 WAR, offense-only player would be someone like Manny Ramirez, and if a 26 year-old Manny Ramirez had hit FA this offseason, I imagine he'd have landed a deal closer to $30 million annually. The point being, I feel pretty sure that Heyward's contract already factors in a "discount" because defense isn't valued as highly as offense; this is just the going rate for 26 year-old free agents who are very good at baseball. It feels bad because the team we pull for has raised payroll by maybe 15% over a period where contracts for star-level free agents have basically doubled, but that's what happens to prices when it's no longer just the Yankees and Red Sox who have $150 million+ to spend. It's also the Cubs, the Tigers, the Blue Jays, the Angels, the Mariners, the Rangers, the Phillies, the Nats, the Cardinals, the Dodgers and the Giants.