I don’t know your particular use case, but I would like to mention a few things.
Charms are meant to encapsulate best practices around an application, and a shared knowledge base for operators of that app. As such, if you find it doesn’t quite do what you need, then it likely is a gap for other people. And the best way to help them is to get the charm updated.
Sometimes the modification is in conflict with a different thing. And then a subordinate is appropriate so someone can pick the one they want (when it isn’t a simple config that could pick either).
Having a generic “do anything you want” config is usually a misfeature. Yes, it let’s you solve your problem, but nobody else benefits from that solution. It also means things don’t actually work unless you know all the details of how to actually make it work with extensions.
An extreme example would be a base OS charm. With arbitrary extensions it can become anything. But as such its shared utility is very small.
As mentioned, there is always ‘juju ssh’. You can do anything and everything with that. But I would encourage you to make changes to the charm so those improvements create an ecosystem where everyone benefits.