- There certainly are performance issues with helm, but setting gc-cons-threshold to a higher value helps my setup a lot.
- I update all my installed packages pretty frequently, and I just use regular melpa. I haven't really noticed bugs with Helm.
- As for the fuzzy matching, look into the "helm-flx" package. It gives you real fuzzy matching, much better than the default helm matching.
- I have M-x bound to helm-M-x, which is a better option than the default. Also, helm-mini is a better option for a buffer switcher.
I agree that Helm is lacking in many areas, but this guide made Helm work better for me: https://tuhdo.github.io/helm-intro.html