Thanks for your question! Regarding usage of the List interface — you could certainly do that, but even if you go 100% purist you will still have a reference to System.Object somewhere in the end ;)
The advantage of clean architecture as I see it is that it decouples your business logic domain from externalities which
- are volatile (change often)
- tend to have an influence on the internal design of your domain
I don’t think that either is true for the System.Collections.List class, or that eliminating stable system libraries should be a goal in it’s own right.
Regarding “new()”-ing up instances… These are DDD concerns, and you have a point. It is definitely something to consider, but out of scope for this article :)