Andreas Matthias wrote:

> Frank Mittelbach wrote:
>> Let us step back and reevaluate what the arg forms are supposed to mean:
>>  \foo:abc  % abc are placeholders for real arg specifiers
>> is intended to be a short form for saying
>>  - do "a" with the first argument do "b" with the second and do "c" with the
>>    third argument prior to passing the argument values to the base function
>>    \foo:nnn
>>  - it is really only a short form of  \exp_args:Nabc \foo:nnn
>> It makes no statements about what \foo:nnn does with the arguments it
>> receives. 
> I see. I got the meaning of arg specs wrong. But now it makes sense.

Well, I am still pondering on this. How does \def:Npx fit into this
scheme? The x argument is not expanded before being passed to \edef.

Here are some other functions I just ran across, where the x might not 
be appropriate: \io_put_deferred:Nx, \io_put_term:x, \io_put_log:x,
\err_message:x, \err_latex_bug:x. These names have the same problem
as the proposed \int_set:Nx, haven't they?