I can see various potential problems with the suggested storage scheme:
1) how would you deal with handle objects, which can be shared between
array and scalars? For instance:
x = myHandleClass();
y(2,2) = x;
x.prop = 10;
x.prop == y(2,2).prop; % <== this should be true
2) how would you deal with dynamic properties?
3) it seems Matlab does not support polymorphism in array of handle
class objects; however, some people tend to think it's a shame; maybe
that would be a possible enhancement compared to Matlab
I admit that the current storage scheme is not the most efficient one,
but I think that's the one that is the easiest to use and provide the
most flexibility (because you really have "an array of object", such
each individual object keeps its entire nature).