I have to say, I'm a bit chary of "marketing" bullet points about vague benefits. From a practical standpoint, the primary benefits are:
Templating code is versioned and managed with branches outside Tridion
Assuming you can factor the coding logic out of your views, you can cover some of your testing needs with unit tests.
Releases of your ...
Faster time to market and easy maintenance
Speed up your deployment time by eliminating unnecessary programming efforts.
Immediately access up to 70% of the most common use cases.
Free up resources to focus on custom requirements.
Benefit from open-source access to community advice and additional features.
Achieve faster performance, handle ...
Besides mentioned ones, I would like to point out rendering.
In classic DWT, rendering takes some time. It might depend on how much the template is large.
In case of DXA, the content is usually rendered in JSON format, which is stored in Broker. (And, such rendering is much faster.)
Naturally, significantly faster rendering can play a role in case of massive ...
Q: Why do I need to declare my view inside getDefaultMvcData()?
A: This method is intended for so-called embedded Entity Models. That is, Entity Models which are used within Rich Text content. On the CM-side, these are just linked Components, so these Entity Models won't get MVC data (View name etc.) from CM. If the Entity Model implements this method, it ...
Have you tried to use context URLs instead on relative URLs when you setup topology?
I have faced a similar issue with 8.5 since one of the content delivery jars sorts the first hit from the mappings based on the pattern search. I used context URLs to resolve the issue. SDL may have a hotfix now.