It raises some interesting questions. To vizualize a program in a useful way, is it an exercise in what you can take away? Take away everything so all you are left with is text nodes and links, and that is something easy to visualize.
This is all so obvious but it never solidified concretely like this for me until now.
The following domains have a bunch of stuff taken away from them, you're left with a narrow domain of very few concepts, and once narrowed it is intuitive to make a visual tool:
webforms - google forms
relational forms - airtable
computer aided design
music - OneNote
mathematica
video games - unity
website - squarespace
crud app - hyperfiddle.net
world wide web - internet explorer, or html
Functional programming may be a way to narrow down the set of "all programs" to a few primitives that can be modeled visually, but not take away so much that it is not useful for general purpose programs. Maybe visualizing pure expressions as a tree of function calls or as an execution graph. IDEs can already do this for imperative & object oriented programs, but you end up with a hairball, the visualization is not useful enough that we no longer need, for example, to write code in files.What other ways can we attack a large domain like "enterprise business apps" and take things away until left with a few simple composable primitives?