First, client-side encryption makes it hard for the company to sell or mine your data, at least as a business model.
What you say is true, you still need to verify the software does what it promises, and doesn't contain backdoors. Unfortunately the problem is still unsolved. Mostly because solving it doesn't help, too, as targeted attacks succeed through bugs in the software, which are expensive to find. But you can build a verification system that the software doesn't contain backdoors:
- verify the software does what it promises. This can be done through security reviews.
- ensure the code that has been reviewed matches the binary. This is done through deterministic builds.
- ensure the software comes to you unmodified. This is a software distribution problem and is more severe with auto-updates and web access, and less severe with installed software. Best is to require the software's hash to be released on public notary services like the bitcoin blockchain.
Also seee my answer on "Is it possible to design a system where the client doesn't have to trust the server?".
Also, client-side encryption means that you still need to trust the client, but don't have to trust the server. So if server and client are supplied by distinct vendors, you only have to trust the server.
Think who you add to your list of trusted companies. If you use a password manager that pastes the passwords into browser fields, the native browser client-side encryption is as good as that, as you already have to trust the browser.