It is still based on generic collection evaluation, but the idea is to avoid having view_layer pointer passed from group to it's evaluation function. This is essential for copy-on-write, where we need to pass view_layer pointer from a copied datablock, but that copy is not yet available at construction time. Also, this is NOT the case where we want to expand datablock at a construction time, just to keep our life easier.