For me, it is clear that it's clear that the headless CMS is the better CMS...
But not all CMSs are created equal, and we'll need the CMS to deliver JSON-encoded data to front end developers for the headless CMS to become a reality. Unfortunately, this requirement can quickly be frustrated by a weak CMS, or a lack of development time to make that weak CMS serve the JSON-encoded data we need.
That's why Drupal is always the CMS I suggest people use when building out their web project. Drupal is that 'better CMS' that gets the job done without a fuss. It's always one step ahead, always looking towards the future - which, in my view, is the headless CMS. It's almost impossible to make a case against the headless approach, if it means less dev time for all involved, and more organisation for a web project in general. With that fact in mind, Drupal can be configured to a deliver pure JSON out of the box, thanks to the inclusion of the Drupal 7 web services module in Drupal 8 core.
The views module, now also in Drupal 8 core, can encode all extracted data as JSON for consumption by our Angular2 app with the help of the web services module. It achieves this without any additional dev time: JSON-encoding of the data is a dropdown option available upon creating the view. Where weaker CMSs would force back end developers into writing potentially dozens of files of new code to encode the data that front end needs, there's no code involved in Drupal's conversion of the data to JSON.
Can building your headless CMS get any simpler than this? I highly doubt it. But if anyone knows of a CMS that does this better than Drupal, I'd be interested to know.