So does "square and rectangle both derive from polygon," but without the problems. (For "polygon" substitute "shape" or "drawable_thing" or whatever based on what your program is doing).
And "polymorphism" by itself isn't an end unless it makes your program better.
> of course a square is a rectangle.
Let me ask you this: is it your opinion that because a square is mathematically a rectangle that you should automatically express this with an inheritance relationship, even if it makes the program worse?
If so you are exactly the person that my message needs to reach. Please take it to heart and think about the hurt you are inflicting on the people you work with.
> Oh, and by the way: the rectangle/square relationship is not "world modeling" --it's mathematics, as close to pure logic as it gets.
It's absolutely "world modeling." You're trying to take some ontological fact about some object (in this case, a mathematical object) and express that in a software design.