A lot of the criticism (almost all of it) you read on the quality of various language models is people trying out chat gpt without doing that. And while it's alright, it indeed has many flaws. Which a lot of people are quick to point out before they give up.
Relative to that gpt-4 is trained on more data, more languages, less inclined to hallucinate (it still does it sometimes but a lot less), and if you know how to access this, it knows how to use tools via plugins.
After you figure out how to access gpt-4 properly, it mostly boils down to knowing what to ask and actually thinking of asking it to begin with. And then you need to follow up with more questions to refine it, etc. Shit in, shit out principle basically. Using it properly is actually a lot of work and it only makes sense if your need is big enough. It's like every other tool really. Having the tool doesn't make you magically better until you learn how to use it properly. Asking naive questions to which you already know the answers is not a productive way to use it, or learn how to use it. It gets better when you step outside your comfort zone and ask it the things you don't know that you need to know. The more specific your request, the more helpful it gets.
A big limitation is actually the UX. Chat is very accessible but not necessarily very user friendly. In a way it was a happy accident for openai that it works so well. But there are tools and extensions that provide you a better experience. For example with code gpt (configured to use gpt-4), you can get it to critique code selections, suggest improvements, documentation, etc. All you need to do is ask it to. With gpt for docs, you can select bits of text and ask it to improve it, critique it, expand on it, suggest counter arguments, additional arguments, supporting facts, translate it, simplify it, etc. A good writer will be able to ask better questions and get better results. The more text you select, the slower it gets. Use it to brainstorm, explore topics, refine, etc.