Do you notice any performance degradation when instantiating and destroying lots and lots of objects across a large-ish (well, more than one class) inheritance tree?
If you're instantiating AND destroying objects, then there should be no performance degradations as object IDs are recycled. The size of the field arrays does not grow larger than the largest object ID. The largest object ID is determined by the maximum sum of all objects in an inheritance tree that exist at any moment. For example, even if you create and destroy a million objects, but only every have one thousand in existance at any one time, then the field arrays will never exceed 1000.
Further, array lookup time is not affected by array size: It is always a constant.
Remember: There's always one more bug.