The problem is that a dynamic list created in code has no definition, so it can't be used at design time: there's no definition to design the declarative code (HTML) with. With a typed list, there is a static definition, it has columns to examine etc. With a dynamic list, that's not the case.
So you won't be able to design a page with for example a grid and a datasourcecontrol with the dynamic list: the columns are unknown.
This means (but correct me if I have misunderstood you) that the columns for example in a bound grid are discovered at runtime in your case. The code to setup the datasourcecontrol with a filter/adapter and groupby is not really less code than fetching the list and set the datasource of the grid + calling databind.
Btw, I didn't get this remark:
Afaik I can't select fields from a TypedList or TypedView. This causes complications when I need to do a Group By on the TypedList where the criteria I want to filter by shouldn't appear in the resultset.
It is possible to obtain the list of fields in a typedlist or typedview. Grouping on fields not in the resultset doesn't work, as that will give bad sql. Filtering can be done with whatever field you want, just create the field in a filter and you're done. The only drawback is that if you use aliased entities in the typedlist, you need to know the aliases in the code.