This is an interesting question. Albatross contracts are not unique to the Cardinals -- though they memorably have had a handful in recent years that stand out, really ever since the big-spending on free agents after the 2016 season that brought in Dexter Fowler and Brett Cecil. A massive contract that a team didn't get the return on it expected was big news in St. Louis for the past several weeks -- and that was the Angels. Baltimore has been carrying Chris Davis' big contract for awhile. The Dodgers at one point had spent like $250 million on international talent that didn't pay off for them. David Price is making $32 million this season and has another year left. The Cubs have Jason Heyward's contract, as you know, and there are three years left on it. Does winning a World Series erase any pinch from that contract, even as the Cubs shed quality players this winter in cash dumps? How does the $200 million and seven years remaining on Giancarlo Stanton's contract look at the moment. And those are three players with ties to the Cardinals who are elsewhere with those contracts.
What I find most interesting about your question is that second part -- "no one pushing for that roster spot." We have readily available evidence that this is not the case.
Randy Arozarena was pressing for playing time (by roster spot I'm assuming you mean playing time, ok?). The Cardinals gave Adolis Garcia a bonus that should have given him the chance to press for a roster spot. In several cases, the Cardinals had other options but went with the bigger contract, the more established player who got that bigger contract. Why is that? There are several reasons that leap to mind:
-- The Cardinals don't have the business plan that allows them to paper-over big contracts with more spending, like the Dodgers do.
-- The Cardinals are betting on their ability to assess the production they'll get from that player, and they are stubbornly confident in this. They put money where their belief is on production, just as they do when it comes to the outfielders they've kept, the outfielders they've committed to. They're betting on their expertise in ultimately getting that production.
There is the other factor here that is worth mentioning and is a big part of this. If the players were performing up to their contracts, why trade them? The Cardinals aren't dumping cash like the Cubs did with Darvish. So, the other side of that coin is true: If the players aren't performing up to their contracts, who would trade for them? That is the question that really is the answer here. It's not that the Cardinals don't eat contracts. They've eaten more contracts in the past four years ...
... than they did in the previous, well, at least 15.
It's that no team wants to take on a contract without the production, regardless of how much the Cardinals are going to "eat." And they don't just release a player and pay out the remaining of his contract, ala Jhonny Peralta, until that's the last possible option. And if the player was performing on contributing in some way, the Cardinals would just want to keep him anyway.