This restriction avoids cases where an alias is returned to an argument and which could lead to to a false positive change. Example:
struct S { S(const S&); void modify(); }; const S& alias(const S& a) { return a; } void f(S a) { const S c = alias(a); a.modify(); }
Taking a const reference of the return value of alias would not be safe since a is modified.
A more involved alternative approach would be to inspect each argument passed to these functions for its constness, but this can get complex quickly.
There's no real need for this change now, so I'd roll back to the previous form (then I don't have to wonder what the 1 means at the call site).