Maybe it should be the other way around, rather than putting the error on peoples expectation of what a free service can do, put the error on the operators expectation what kind of free services they can run?
If you can't run a service without arbitrarily banning people (and inadvertently affecting their livelihood [ignoring the question if people should put their livelihood up to a free service in the first place]), maybe you need to adjust the service you're offering people?
There is no requirement for them to run it fully autonomously, because obviously, they are unable to do so without punishing some of their users without any recurse. That's probably a sign it's really hard to run it autonomously, and they need to do something else.
If you don't want your free service to be a cost center, then maybe change it to not be?