Not sure what do you mean with that. GH has a cascade flow, if you change something all downstream components will be updated. You can measure by each component (usually a source parameter) what percentage of the definition (and model) it affects, but there is room to reformulate the definition and change this, so I don’t think it’s something fundamental and generic. This could make sense in specific design fields, with restricted construction topologies, where certain algorithms are better than others or are so similar that it is convenient to have templates in which the outputs of the parts of the definition are structured. But this is within the specific modeling fields, so here I think it is convenient to differentiate between local and global parts. But tell me if you understand that differently.
As all language, it has a context. Same word in different context can mean something different. In McNeel language, as far as I understand, definition is the gh circuit, because you define the model explicitly, that’s the point of GH. Some people call this script as well, but from my point of view this should be avoided so it doesn’t get confused with the written code in a conventional programming language. I’ve never seen this called expression, though. In the context of GH, it refers to the Expression components or instructions within them. Language is good to the extent that we understand each other and avoids misunderstandings. Generally, the context of the message gives the necessary information to dispel ambiguity. Then comes personal preference, I’ve learned to name it this way, I think I follow McNeel’s language, but I don’t think you can say it’s wrong as long as it’s clear what you mean. For efficiency, it’s best to use the same language that the software uses.