Well, dshape can change with an 'append' operation, not with `__setitem__`.  This should have a some cost, but I am not a big fan of introducing caching before we know that it is actually needed.  So I would let this as is, and in case of necessity we can cache it.