Yup, this is classic Unix style! Having data-centric interoperability among tools also helps you port to new platforms more smoothly, as opposed to throwing away your code or rewriting from scratch.
Examples:
1. Using text formats embedded in XML -- he took advantage of this when reverse engineering
2. Generating text ASM -- he said this aids debuggability, and allows using existing ASM tools that he didn't have to write
3. Generating C++ -- taking advantage of the type system, as mentioned, and a huge array of other tools (profilers and debuggers)
It's data-centric rather than code-centric. It's a interoperable and transparent architecture, not a monolithic one. (Which is not surprising because Flash itself was made for the web.)
Related: The Internet Was Designed with a Narrow Waist https://www.oilshell.org/blog/2022/02/diagrams.html
A Sketch of the Biggest Idea in Software Architecture https://www.oilshell.org/blog/2022/03/backlog-arch.html