That sounds like a contrived scenario to me personally. Most programmers simply do the task that their supervisor or manager has assigned to them. Its not like they can refuse to do a task simply because it was worded poorly. They would just ask for further clarification.
Most programmers simply do the tasks assigned to them, because most programmers don't know how to sell!
If you can sell, then you get to decide what you should be working on, convince your manager (and team leads, and other managers, and business teams, and anyone else who might be a stakeholder or shot caller) that it is in their best interest to have you work on the thing you have recommended. Note that this can't be BS... what you're recommending has to be an actual win for them. So, when you've completed the task you sold them on, they see you as a visionary and successful technical leader. The trust that creates will allow you to pick bigger, more ambitious things to work on.
Of course, this assumes that you want to take control over your own work. If you're content just doing what you're told to do, then keep on doing that.
Understanding the problem domain, i.e. what the customers really want and need rather than just what they specifically ask for, will help any software engineer do their job better. Only then can you suggest alternative solutions that solve the real needs vs. patching one requested item after another that are all half measures to solving the real problems.
I don't know what scenario you're envisioning, but I'm envisioning a scenario where the task a programmer works on is assigned to them by a supervisor, a project manager, a lead, a project planner or whatever other similar designation companies have.
The idea that non-trivial projects get built by engineers "selling" their ideas to each other doesn't align with my experience or even expectations. As a manager, I want my best developer to work on certain tasks, and not a junior developer. I don't want someone not familiar with the domain or technology to pick tasks which they have a high likelihood of failing at, etc, etc. Nothing controversial. Simple basic common sense.
Companies have ways to escalate concerns programmers have about the tasks themselves. And it could also be that programmers are invited to comment on the road map/big picture. But that is something different.
It circles back to my point, though. It doesn't apply to them because they don't try to sell their own ideas. If more engineers took the reins of their own work, I think they'd be happier and more successful.
Many tasks are poorly defined or aren't solving the real problems the customer has. This is the classic problem of a customer asking for something very specific then complaining when it doesn't solve their problem. There are a lot of developers who deliver exactly what is asked for in this way. They would be better served by taking a few minutes to make sure they understand how it serves the customers' actual needs, not just completing another ticket.