What's so good about that? Isn't it more convenient to be able to store different types together in the same collection?
If it was truly whatever type, how would you know what to do with it when you got it out of the collection?
E.g
foo = myColection.get(2);
foo.?????? (what operations can foo afford?)