This isn't a software upgrade. It's an on/off switch.
There's a difference. A software upgrade implies some new code which cost real money to develop is being made available. That's not the case here.
As others mentioned, manufacturers do this already for cost reasons (reducing variation) on other software, but in that case it's legitimately a software upgrade because the new software being turned on cost actual money to develop which they recoup by putting it behind a paywall.
In this case, it probably actually cost Tesla money to implement the software to cap the battery.
What we have here is software being used to implement a paywall on hardware to recoup hardware development costs (presumably developing the 75 battery cost more than developing a 60 would have). It's a software-controlled hardware upgrade which happens to not actually be implemented as an upgrade because of cost control reasons.
I don't know that there is precedent for this precise business model.