If you replace your
console.log(cont.list());
with
console.log(JSON.stringify(cont.list()));
you will see that the width and height are not set until the second call. The way your are inspecting the console log above must be showing you the current value of the logged object... whereas serializing the object using JSON.stringify will take a snapshot of what it was at that point.
As far as the other question goes, I'd suggest that perhaps you'd be better off forking from DC.JS and changing what you don't like about the style. The DC.JS approach to mixins seems to work nicely and you shouldn't need to completely reinvent the structure of the code.