Jeff is probably the only one who can give you a complete answer, but I hope I can contribute with something.
I believe Type is a bit special (and maybe DataType also), this couldn't hold
for any two types in general. I think it does square pretty well with
invariance though, Type{Any} is a much smaller type than Type, but they would
be equal with covariance. Where do you feel that this would collide with
invariance?
