Essentially yes, Because

1. it is consistent for the cases:

  ```d
  size_t u = 10;
  int n = 10;
  arr.length -= 10;   // (1)
  arr.length -= u;    // (2)
  arr.length -= n;    // (3)
  ```

  Just only allow the case (1) would be problematic in generic code.

2. If we will add nogc infererence to the language, we cannot infer the attribute for the expression that modifying `length` property. Ambiguity is not good.