There can be many ways to expose content from AEM as JSON
Has anyone evaluated different options? What is the difference between CaaS and Sling Model Exporters? If there are some reference links which help us understand and evaluate different options please share experiences.
There is quite a bit of information on Sling Models in that link.
If you want complete control over which nodes are exposed - you can write a custom service using JCR API and then convert the result set to JSON. This would be manual coding.
Adobe is probably trying to reuse feature provided by Sling instead of reinventing the wheel, also focusing on providing headless capabilities to cater to different channels/type of apps. I guess the future would be headless capabilities to support SPA etc.