Cutting Jimmy Garoppolo would save the 49ers $23.6 million in cap space.
It would also make it clear that Trey Lance is the starter Week 1. Better to kickstart Lance's development now than to hold off on it. However, it is not something I believe will happen despite being an advocate of it. There is a case to be made as to why the 49ers should not cut Garoppolo.
The most obvious stated factor is that if Lance is not ready, then Garoppolo can hold on as the starter until he is. Lance has not taken the field for a game in over eight months. There is likely to be some rust on his part along with the adjustment to actual NFL game speed. That way there is no pressure or no rush to get him into that role. The 49ers can take their time with Lance to ensure he is in the most ideal spot.
Nothing would be more detrimental to the start of Lance's career than just putting him in a sink-or-swim situation. That isn't to say he wouldn't be able to stay afloat, but the odds just wouldn't be strongly in his favor. The 49ers invested heavily into Lance, so perhaps they are thinking they want to be as careful as possible with their investment. By having him sit behind Garoppolo, he can continue to embed himself in the playbook and improve any issues with his technique that Kyle Shanahan sees.
2021 is assuredly the last season for Garoppolo. He gives the 49ers a bit better of a chance to go far this season. Assuming he can have a healthy season, if he replicates, and even somehow improves his 2019 season, then the 49ers will be able to receive a sweet deal in draft compensation for him in the offseason. Given the lack of first-round picks the next two seasons, the 49ers need to stack as much as they can to make up for it. They could eventually use the capital to package it to get back into the first round should they see fit.
If Lance were to end up finding his way as the starter this season, then 49ers would be paying Garoppolo a high sum of money to be the backup. At that point, the salary cap doesn't really matter when the season is ongoing. I am not saying it shouldn't be paid attention to, but the only way the cap is going to be a concern of Shanahan's is if he wants to trade for someone like with Emmanuel Sanders in 2019. Or if they want to extend someone mid season.
Other than that, Garoppolo's contract is not a bother to Shanahan like he said. Cutting Garoppolo versus not cutting him has legitimate cases to make. At the end of the day, all that matters is the development of Lance, and if Garoppolo can somehow contribute to that, then it will be worth it to the 49ers.