From a developer ergonomic perspective: Yes, this’ a surprise. As there’s no easy way to automatically observe all the properties used for a binding with a view. It’s probably understandable - since automatically observing everything could be expensive.
From a reverted ergonomic perspective: well, having a simple signal mechanism that only requires 1 property observation to update a bunch of stuff is pretty ok-ish. Not the best, but pretty efficent.
That said, there’s a way for automatic observation with this. https://github.com/bigopon/aurelia-deep-computed. It’ll be easier, though maybe depends on scenarios and situation to say how much easier.
This is acknowledged, and is fixed in v2 with the use of Proxy. For IE11, it’ll need to be done in similar manner like the above plugin.
In my project, I’ve mostly gone with signal mechanism, and local ones via value converter like you saw. So I don’t need to care about naming & clashing.
EDIT: I missed this
in general as we almost never had problems with the performance of AngularJS, where there isn’t this limitation of updating bindings (as far as I know Vue doesn’t have this limitation, too).
AngularJS always updates everything, and Vue by default always observes everything, so neither of them runs into this. Aurelia, on the other hand, try to avoid going either way.