The idea behind it was more that is a feature that isn't required as Dart come with it out of the box. I'm not sure if it has a influence on the performance. But one big benefit is that it's much easier to understand that ```add``` mutates the current object and doesn't return a new one. So more a documentation thing.