Your #2 is spot on. I have in fact said the same exact words to Opus about missing the forest for the trees.
I have it work on some code for an inhouse ClaudeCode plugin, and it starts coding as if it will be attacked by hackers who will try all sorts of variations to break it. I can appreciate that in cases of software that is public facing or accessible, but for a simple helper plugin it is overkill.
It will even admit that it is doing this when confronted, and then keep on getting lost in edge case verifications on the next turn. I feel like Opus is the person who does something a way you don't want, you tell them how you actually want it, they apologize, and then just continue doing it their way as if your input meant nothing to them.
Yeah, trying to get it to add features is sometimes _impossible_. It'll circle around and around creating all kinds of preconditions that you never asked for as excuses for why it can't do the really simple thing you asked for.
It'll also find some minor security problem and drop everything on the floor with URGENT without me asking it to.