I should have said that the no-implicit-copy bindings could be spelled: borrowing/consuming/mutating.
This isn't a grammatical concern. Rather, we need to distinguish the binding keywords:
func f1(x: borrowing X) // keyword position is debatable
func f2(x: consuming X)
borrowing x =
consuming x =
From the operational keywords:
f1(borrow x)
f2(consume x)
f2(copy x)
The bottom line is that a growing subset of programmers want to migrate toward ownership control. Asking them to clutter their code with awkward attributes is not the way to encourage that. Binding keywords are the best way to control ownership and mesh well with the need to specify parameter ownership conventions.