>> He gave an example of how he works through such a problem; <<
I notice that his design is heavily based on how it will be used and on performance issues.
I tend to make sure that the entities have all the needed peices of information associated with them. The operations that will be done with entities is generally an independent issue, beyond making sure the "raw" information is available for later coddlet transformations.
If the entities are well designed, then I apply my "coddlets" for a given task to give the rest of the task the information it needs. The coddlet tends to isolate the task operations from the schema structure. Thus, it is sort of a seperation of concerns.
IOW, if you have a good schema system, the rest tends to flow naturally.
He seems to be coupling his class design to the immediate needs of the problem. What if vastly different needs come along for the same data?
It would be interesting for him to finish his table version and describe how he thinks it through. Perhaps he can find some assumptions that I missed on a conscience level.