In practice people do silly things, or during refactoring accidents happen. This seems to happen more the larger the code base, and the larger the teams, especially if they are inexperienced. Additionally, when this does happen it often manifests as an intermittent failure and is very tricky to track down.

`controller.controllers` should never be set directly, if it is set, remember that consumption of `controller.controllers.foo.bar` often is only via CP or Binding. So if `controllers` is not what it should be the CP and binding value will just be `null` or `undefined`.

Even worse data can flow back up, and set to `controller.controllers.foo`, resulting in unexpected and distracting behavior.

```js
var obj = Ember.Object.create();
Ember.set(obj, 'controllers.foo.bar', 2)
// =>  Property set failed: object in path "foo" could not be found or was destroyed.
```

I also assure your that when I originally made this property `readOnly` it was after encountering the issue in the wild multiple times.

Ideally controllers property should not be directly set-able, but overridable at construction time.