I tried going over the documented parts of the Angular cheatsheet, API and repos in an attempt to get an overview of the concerns they're trying to address:
- server-side rendering for SEO purposes
- deploying to web, mobile (iOS/Android/...), Windows apps (Electron), browser extensions, ...
- template variables
- virtual dom to rerender only diffs, along with ways to let the user indicate what constitutes item identity in iterables to ensure as little as possible gets re-rendered
- auto-memoize on functions marked as pure (pure Pipes in ng parlance)
- some premade 'Pipes' for common ways to serialize info (currency, dates, ...)
- templates not using weird jsx stuff so compatible with e.g. Pug to DRY up the html
- dependency injection to make all parts customizable
- 'directives' as rulesets to change behavior of elements
- controlled communication among components in the hierarchy (ng parlance: inputs/outputs)
- transcluding content into components (which is actually the norm in React though Angular normally delegates from the top down rather than injecting everything from the very top)
- component lifecycle hooks (e.g. do x when your component is created/changed/initiated/rerendered/destroyed)
- router: besides the obvious stuff supports lazily loaded routes, route authorization guards
- ahead-of-time compilation to ensure only some 'bytecode' representation of the app (excl. Angular compiler) would be shipped to the client
- i18n support, though useless (presumes compiling the text in rather than making it dynamic)
- animation support (perhaps not unlike the PowerPoint crap, e.g. if you add an item to your list, have it materialize / fly in in such and such way in the UI)
- change detection strategies ensuring bits only get updated once they change in the model (idiomatically using their
@ngrx/store), controlled way to quarantine side-effects, log/monitor/replay state changes for testing/debugging
- support for asynchronously executing functions outside of the context of the front-end framework so the UI wouldn't hang (Zones, since made into a TC39 proposal). that's using webworkers, but Angular itself runs in one too for similar reasons.
- sanitization of injected html/styles/images/scripts in the event of malicious user-injected content
- performance monitoring thing (web tracing framework)
- stuff for testing (e.g. separate components/whatevers, e2e), mocking backends
- stuff mediating between the values in the model and UI controls (incl. custom ones), as well as validation rules
- observable-based http module (for easy canceling, retrying, throttling, merging such as to ignore all but the latest search request), handling base headers, ...
- CLI for scaffolding new projects/components/whatevers that'd help manage the build process for you (webpack config: how to load different file types, e.g. different preprocessors)
- premade components in google's Material Design style (material2, teradata's covalent) that hook into the Angular model
- browser plugins to inspect components / model state
- language services for IDE completion including within the HTML views
I'm not gonna pretend the other players wouldn't have covered at least most of this as well, especially since there's no magical advantage these guys have. There's probably stuff I'm overlooking, but that said, I do know all in all there's a bunch of different concerns, and these guys have been pumping a bunch of resources into getting them covered...