The user experience due to asynchroneous loading of JS is outright terrible. Not only does it take forever to load but also when you THINK that the page is done loading and ready for use elements keep popping up or are NOT ready for use. One of the worst examples: form validation. Forms are submittable without validation as long as the corresponding JS is not done loading.
THE worst example: the checkout. The most sensible part of a shop takes ~10 seconds to load, riddled with hacky popups and slow response times.
Developing this (still trying to wrap my head around, hence this post) feels a bazillion times more complicated and time consuming. The seemingly simplest tasks (move blocks around, implement custom js functionality or remove default magento ui functions) take forever and are splattered over multiple layers and code.
I just don't see the advantage here. The shop creates more data to load, developing is more time consuming and the result is the exact oposite of slick, lean or fast.
IMO: a little custom ajax would get the job done a whole lot better with a tiny fraction of the overhead.