> strong deviation from that. (this is independent of the fatc that
> there may be a completely different approach to document level
> syntax, eventually, but this is not what xparse was meant to be).

I'm guessing that "completely different approach[es] to document
level syntax" have been discussed earlier. Any pointer to such a
discussion on this list?

> -snip-
> to break between arguments (rather than inside)
> -snip-
> Now one could argue that that this  behavior for \\ is useful

Ok, I retract my previous proposal: it makes a lot of sense to want a
consistent user interface. Then always skipping spaces is probably
best. For \\, I am thinking that perhaps removing the optional
argument completely, and replacing it by a look-ahead for \vspace is
possible:

\\ [1cm]  => \\ \vspace {1cm}

of course allowing spaces. Then we wouldn't have this odd exception anymore.

> have to implement a full blown scanner yourself and  disable TeX's internal
> scanner completely

It should be enough to make spaces active, but then comes the task of
removing spaces at the beginning and end of lines, and converting
several spaces in a row, etc. A huge mess.

> here is my summary
>
> allow spaces but not \par between arguments
> do not allow spaces between arguments
> leave it to the command how spaces between arguments are interpreted

I agree with all the pros and cons mentionned by Frank. However, I
think you forget one possibility (which is the current xparse
approach): trailing optional arguments do not ignore spaces, except if
the command is a control word with no mandatory arguments. Ugly,
slightly difficult to remember, but consistent. Though I'm now
convinced that the LaTeX2e approach is probably the simplest.

Regards,
Bruno