I don't use AI to write code if that code is not short and self contained. It's great at explaining code, great at strategy and design about code. Not so much at actually implementing code larger than 1/4 to 1/3rd it's output context window. After all, it's not "writing code", it's statistically generating tokens that look like code it's seen before. It's unknown if the training code in which the LLM is statistically generating a reply actually ran, it could have been pseudo code explaining that computer science concept, we don't know.
People seem to want a genie that does what they are thinking, and that is never going to work (at least with this technology.) I'm really talking about effective communications, and understanding how to communicate with a literal unreal non-human construct, a personality theater enhanced literary embodiment of knowledge. It's subtle, it requires effort on the user's side, more than it would if one were talking to a human expert in the area of knowledge you operate. You have to explain the situation so the AI can understand what you need, and developers are surprising bad at that. People in general are even worse at explaining. Implied knowledge is rampant in developer conversation, and an LLM struggles with ambiguity, such as implied references. Too many same acronyms in different parts of tech and science. It does work, but one really needs to treat LLMs like idiot savants.
But I don't think you can blame users if they're given an immature tool, when it really is on companies to give us a product that is obvious to use correctly.
Its not an exact analogy, but I always like to think of how doors are designed - if you have to put a sign on it, its a bad design. A well designed door requires zero thought, and as such, if "AI" usage is not obvious to 99% of the population, its probably a bad design.