One of the questions that arise when starting a new AEM project, is what kind of front-end approach to choose. In Adobe we have internal guidance with a document of 15+ pages, and obviously I won't put that here because it's going to bore you out. Instead, I want to distill it down to a few considerations.
Remember, the first priority is the customers needs, and that often includes not spending too much money and effort, on the short and long term. This might sound basic, but what I often saw in my consulting days, is that very passionate (Front-End) agencies push for the latest and greatest front-end tech.
Because it's cool.
We like working with it.
Everybody else we know is doing it
It's a few milliseconds faster in rendering.
Now while these above are understandable, and I admire passion for the job, these reasons should be the lowest priority. Instead think this, I choose this front-end approach because:
It fits the goals of my customer
It's simple: low maintenance costs and developers can easily understand it
If needed: It can work well with other developer teams on the platform
It works well with Adobe Experience Managers' extensions (think edit-ability, Adobe Target)
It works well with the infrastructure of AEM, either on premise or in the cloud
After considering these, then you can consider the first 4 points. Think about it like this, a good salesman gives the customer what is appropriate for him. If a customer wants a very fast sports-car to do a race, then the car-salesman should sell him a Ferarri. But if a customer wants a car so he can make money with Uber, that would be an inappropriate: it would not never pay itself back. Instead he's better off with a new Mercedez. Unless, despite advising against it, he insists on blowing money on a fancy Ferrari, even though he doesn't need it, then fine, go ahead!