The contents will be a newly constructed Element as Element is bound in transient scope.
The purpose of this is so that you can define multiple providers for a single service type and then pull them all back.
For example if I had an interface..
interface IConverter
{
bool CanConvert(Type typeA, Type typeB);
object Convert(object a, object b);
}
I could bind..
Bind<IConverter>().To<IntToStringConverter>();
Bind<IConverter>().To<EnergyToMassConverter>();
Bind<IConverter>().To<DogToCatConverter>();
Then in my code I can find all the register converters and find the one I want to use.
kernel.Get<Collection<IConverter>>().First(c => c.CanConvert(objectA.GetType(), typeof(String)));
In other use cases you might chose to use all of the returned services or go down them in order until you find one that works. It can be an extremely useful feature.
Hope that helps.