This was an important, and obviously difficult, thing to write. So thanks for doing it.
Let me say one thing about Angular 2 based on many hundreds of hours of intense study. The most important thing about Angular 2 is that it represents the committed viewpoint of a group of people with the highest conceivable credentials as to the overall intellectual foundation for the next stage (5–8 years) of web development. The specifics to this platform hardly matter when seen in this light, and the most challenging intellectual leap is through RXJS, which Angular adopted from Microsoft (with Typescript — also from Microsoft a distant second, but still a huge adjustment). Angular 2 is very difficult because it is a deliberate effort to raise the bar to include conceptual bases that are much more subtle and advanced than those long accepted as standard in web development. The skyline of cyperspace will have thousands of 80-story towers, where today there are only a few dozen. The concepts and intellectual demands for building at that level must be a quantum leap up, and Angular 2 is just forcing people to face that reality. The more you learn about it the more you sense how ambitious and daring it is. It can never be right for everyone, and maybe not even for most developers.