Question: What is a good attitude from developers when discussing new features, and namely, non critical/questionable features?

Say you are developing some sort of Java like language, and the boss says: "We need pointers so that developers could fiddle with object memory directly!"

Should the developer shoot down the idea because it adds unimaginable complexity and security vulnerabilities, or should he do what's asked?

This may not be a good example, but what about things that are more in a gray area, like adding buttons that break workflow, or goes against internal structure of the program, etc.?

What is the optimal "can do" vs. "can't do" distribution for a regular programmer?

EDIT: The question is not about a bad boss :D

I was more interested how do people approach new problems that add a noticeable amount of problems while maybe being marginally useful.

Should the general attitude be:

1. yes we'll do it, screw the complexity
2. maybe
3. no, the general rework, and implications don't justify the change

What should be the reaction of a good developer?

Answer: 
Most is already said, but there is one thing I would emphasize in my current work environment. I work for a company that is a contractor for other companies and out applications are business process related ( to a fair amount they drive sales and customer communication ).

Business processes along with the accompanying products can be ( at least if the company is big enough ) very complex. To a certain degree, if you are modelling a complex thing, the resulting application will have a relating complexity. As most individuals of the business people only see their part of the process the complete application/process builds on a greater complexity than what is visible to just one user.

My point is, that when a new business requirement arises, it will work for the business people, because it doesn't raise the complexity much higher, but may have a greater impact on the whole system. In my opinion this is not a reason to argue against that change. It is the right point to discuss the efforts ( and the expenses ) with the customer. It probably won't stop the customer to have that feature build, but by time they will gain a feeling for the applications and some discussions about "uuh, you're that expensive!" will be much less picky.

I do not know whether you are in a comparable situation, but I have learned that the stakeholder's situation doesn't necessarily has the same complexity raise imminent like the one that developers and architects of the IT system face. In that situation communication helps both sides.
Sometimes its actualy customer request (comming from customer internall politics). Then its hopeless and must be done (but management should also consider whether continue such project or whether should they renegotiate price.)