My suggestion is quite simple, add a setting to themes called 'editable' that makes the theme editable unless you manually tick it off. When you import a third party theme for example, one from the RM, it cannot be edited and instead perhaps has some text that says to create a child theme. Here is my rationale:
A plugin is something that requires advanced knowledge. To edit it, you need to be quite adept at PHP. And if you are, you likely also know you shouldn't be editing a plugin that you didn't create because next upgrade you'll have to manually remember what changes you made.
Well the same environment needs to be available for third party theme developers. What I am finding is I have a theme that I put out on the market. Someone downloads it and edits it directly. Then they want to upgrade it and, boom, almost all their style properties are reverted when they go to edit it.
This is all of course in lieu of making style properties upgradable. One of the two for sure needs to be done.
Sure someone can just make the change, but the idea is that they should not do so an in fact be creating a child theme. I feel like I write a post about this 5 times a day, and it would save me a lot of effort. A lot of other third party designers, most of them, do not advocate this in fact I feel like Im the only one, but it is a necessity. This is a huge issue and needs to be addressed in some form.
Thank you for considering!
ETA: one possible way to make sure the average person doesn't use this setting and limit it to third party developers is if you only make the setting available if you are in beta mode. So the average person creating a theme won't see the setting. But the average person who has used a third party theme (which the third party author will have needed to have beta mode on AND clicked the setting -- a rather simple menial task) will be able to if and when the third party author has enabled it.
OR just make it show up if the theme has been imported rather than created, that makes even more sense