It’s a good guestion and probably best answered by the Airtable engineers. I think it’s reasonable to think of a script block as function - you run it, it has a terminus, but it doesn’t resolve to a value unlike actual functions can. But it’s important to note that there’s no requirement for a function to return a value.
But, I tend to think of script blocks as apps and await is simply an element of the app (and functions) that allow us to apply blocking rules in a non-blocking script environment.
Ideally, script blocks should be able to return values themselves; this would be a requirement if we convince Airtable that Script Blocks are indeed the most ideal building block framework for an extensible formula framework. While the code editor suggests that a script block does not support return(), I beg to differ - this code runs fine which suggests Airtable may indeed be prepared to make it possible for script blocks to act as both little apps and functions in and of themselves.
More here - Guidance on "top-level" `return` in scripting blocks