This change requires a change in the templates too (as the CTor in the template has the same signature). Changing things at the same time in template and runtime is a breaking change (as people can update templates and not runtime -> error at runtime), and therefore we can't make this change now, how small it might be.
there's a different way to do this though, as I suspect you want to do this:
say you have a query like:
var q = from c in metaData.Customer
select c;
and you now want an EntityCollection<CustomerEntity> filled with the results. Linq's ToList returns a List<CustomerEntity> and you don't want to fill one collection with the other. Internally, the linq provider will first fetch everything into an EntityCollection<T> and return an enumerator on that collection when you enumerate 'q'. So do this:
EntityCollection<CustomerEntity> customers =
((ILLBLGenProQuery)q).Execute<EntityCollection<CustomerEntity>>();
This way, the query is executed and you obtain the direct collection the data is fetched into, so no dumb migration from one collection to the other.