I think it is much more 50-50 these days, even with stars in long term deals. David Price did not exercise his this offseason even though he is healthy. He just could not do much better. Obviously Kershaw got more money but I think we all knew that was misguided when he did it and was much more about him spending his entire career in LA.
When foolish money is added like with ARod the team doing it is usually in a position to overspend.
If Harper is a 6-8 WAR player for 3 years he will opt out and get more money. If he is only a 4 WAR player I am not so sure. And the Phillies could easily let him go at that point if they are trying to squeeze $50 million for Trout under the luxury tax. Teams offering the opt out should be willing to let that player go. I suspect Klentak is in that analytic camp where he would be completely fine to take Harper's age 26-28 years and then not give him 10 years at age 29. If Harper had been the key to a World Series victory I am guessing we would give him the extra years and money, but if that happens it is a nice problem to have.