The graph is the unoptimized representation, see graph_for(input, target) for the “full deal”. So the graph property is more “how did TorchScript understand my program” than while graph_for is  “what will TorchScript run”.
I’ve tried to summarize a bit of how that happens in a couple of articles on my blog: Optimizing functions in the JIT 1 and Runtime overview 1. Note that none of that is official information, so treat anything on my blog as “random person on the internet says…”.
Best regards
Thomas