Topmind: It is not so much about being "exciting", but many of the principles of shapes just don't extrapolate to the real world (at least as I see it).
The purpose of the Shapes examples is to demonstrate implementation techniques for dynamic / runtime polymorphism. It is well suited for such a purpose. It is not a model to be extrapolated to all OO architectures.
Topmind: A more interesting toy example would be: [link|http://www.geocities...change.htm#people|http://www.geocities...change.htm#people] [*]
Your Employee rant (I didn't find any actual example) would be poorly suited to my purposes. How would including issues not addressed by dynamic polymorphism improve the illustration of the implementation of dynamic polymorphism. It would just cloud the issue.
However, regarding your rants: if you ever decide to expand that People-Type thought experiment into a real example (real and complete working code), then let me know. I would love to compare.