I still prefer the 2.0.
And if a component raises too many dependencies —facades—, it begins to smell bad.
Also, the point of Miles is very important. The less apparent is the underlying framework, the easier becomes future upgrades. Fewer dependencies it has. Ideally, the framework should remove itself as much as possible from client code. So, having the injector.runInContext(...)
in each component results in too strong coupling between components and the current version of angular.
If you think that it is not a concern, just enter inside npm and look how people are struggling to update Angular version after version. And then compare it with React. (This same article talks about Angular 14, when the last is 17)