It also lies about the actual status of the installation. A deployment that applies successfully but has issues with the new pods coming up can still show successful.
The larger charts are a nightmare which isn’t helm’s fault but it doesn’t make things appreciably easier either.
Kustomize has a lot of warts too. If the type definition in k8s source doesn’t have a merge key defined, it’s going to overwrite the entire section of the resource. You can use JsonPatches to get around that problem but that is super gross too.
The entire ecosystem is trying to solve the same problem and no one has come up with the definitive way of doing it (because it’s a HARD problem) It seems like Helm templating and then passing to kustomize to add in the one-off changes is the direction a lot of people are heading but it’s more of a least-bad solution than a good one.
I will say, if you’re using helm templates for your own stuff, you very likely going to be happy with it.