The original aim was to implement named parameters that the shell would parse and pass to the command.
That was frustrated in UNIX because there was one command (dd) that used = in its syntax.
There are no such commands in Plan 9, except mk, but mk is interesting because
mk treats those as entries into the environment, so the thing you originally complained about
would work without quoting, and = would be handled by rc uniformly.

On 15 May 2017 at 12:48, trebol <trebol55555@yandex.ru> wrote:
Why? the assignment is after the start of the command, so is not an assignment,
and with the correction of Erik, now rc admit the use of = after the first word
(in the first would be an assignment), so two=2 is just an argument to echo,
exactly 'two='2.

I like this behavior.

trebol

> Given
>
>> broken! one=1 two=2 echo $one $two
>>
>> 1 2
>
> What should the following do?
>
> one=1 echo two=2 $one $two
>
> Disregarding a UNIX historical mistake, I'd expect
> 1 2