The problem with the CJ extension is that he is an obvious non-tender candidate this offseason, and the possibility of that happening once his BABIP regressed should have been obvious LAST offseason. I even predicted CJ would be a non-tander candidate last offseason since he was very likely to regress significantly in 2014. Now there is no option but to pay him. Had the extension not been made he could have still been traded as an arbitration eligible player.
All the extension did was eliminate the option of cutting him loose and freeing up that money, which is probably what would have happened to him this offseason.
In my opinion, the CJ extension was worse than the Uggla and BJ contracts because 1.) he was already under team control, 2.) he was very likely to regress significantly, and 3.) there was zero reason to keep him past the period of arbitration team control.