I use it constantly and hope I never have to code without it (or something better) again. It does a good job writing the kind of boring code I don't want to write, and it generally seems to include fewer errors than I write in my first drafts of code. More than once I ignored its suggestion and wrote my own version, only to later realize its version was more correct and efficient. It does a good (sometimes incredible) job of even handling pretty specialized subject matter, and of using the context of other code and comments you've written to suggest exactly what you need next.
Maybe once you eliminate one level of "boring" code, that just means parts of the next-higher level of code become rote and boring. It reminds me a little of Richard Gabriel's reply to Guy Steele, when Steele said something like "Lisp doesn't need design patterns; it has macros." Gabriel said "That just moves the patterns up a level of abstraction."
(I probably remember that story all wrong. But I like it anyway!)
One of the problems with (classic) Lisp macros is that they aren't first class, ie you can pass them around like you can do with functions (or numbers etc).
I agree, I always use it now when I have to code in Python. I find the completions easy to ignore and easy to accept. For something, like generating code with embedded SQL or SPARQL queries, I pause and test the queries independently.