I'd be fascinated to see a graph based approach to programming language features, but I'm not sure they're decomposable and independent enough to make it feasible.
Start by listing out programming language qualities that are good/bad/intolerable for each of those other interaction categories, then work that backwards into a set of required features for a desired language.
E.g. X makes writing a Y compiler optimization impossible
On structured iteration programming, it might be a valuable first step/prototype to see if you can generate a fact/association graph from historical discussions about programming language qualities.
Much has been written (and continues to be!) in many high signal:noise sources. And some lower ones.
(1) extracting a relationship graph between all mentioned qualities and (2) generating sentiment analysis on those relationships (even if positive/neutral/negative/unknown) might help bootstrap a more comprehensively-populated version that can then be refined.
I agree! Those things you listed all interact with eachother.
I am still trying to get my head around orthogonality in design and how to design permutations/combinations that work together well and are flexible.