This is pretty much right - the intention behind the expression language is one part JSON-ability, one part security (embedding JavaScript in a document means either unlimited security vulnerabilities, or requiring the consumer application to run their own full-fledged JavaScript interpreter) and one part portability: maybe half or more users of Mapbox are using their iOS, Android, or native toolkits, which don't have JavaScript around and they turn those expressions into C++, Swift, shader, etc language.
Thanks for the context, Tom! The security and interoperability concerns make a lot of sense as well now that you mention them. I also didn't realize such a proportion of Mapbox users were relying on integration with native platforms—it's neat to see how the expression language can serve as a compact DSL that can compile to all those different targets.
Really enjoy your writing and all your work on Placemark too by the way, keep up the awesome work!
I'm really excited to try out Bertin.js for future work! I selected the four libraries here because they were used by participants in a user study I ran this past year. But Bertin looks great and sits at a level of abstraction that I find really compelling!