I'm curious how you mean? The point of being able to initially set a `storageValue` then overwrite it is for (as a contrived example) you can do things like the following:
```javascript
var storage = { cntr: 0 };
process.addAsyncListener(function(storage) {
  // keep track of some global states, w/o relying on being able to access
  // the storage in a bubbled scope.
  storage.cntr++;
  // Now return a new object that can help keep state for callbacks.
  return {};
}, { /* callbacks */ }, storage);
```
Also, I'm not restricting the value to just an `Object`. They can return pretty much anything.