Какая все таки странная эта возможность.
Когда ты на лету "пакуешь" объект какими хочешь методами.
var obj1 = { foo: function(){alert('foo')} };
var obj2 = { bar: function(){alert('bar')} };
var clonedObj = { ...obj1, ...obj2 };
clonedObj.foo();
clonedObj.bar();
Жуткие зависимости от кучи непонятного кода, никаких контрактов.
Как такое с S в SOLID соотносится.