Doesn't need to act differently in what it does.
But it does need to report it, because e.g. you might want to bundle data/assets/config relative to the script, and want to be able to run it from wharever and have it still be able to find it.
In the later case, does it mean that it is not possible to write reusable code based on that feature? In the former case, what should be done when sourcing is done recursively? Can this be used to defeat file location, for instance, by generating a script in /tmp and sourcing another file from it?
Secondly, it's super frequent that scripts I write or that others write need the folder they're executed in as an argument.
99% of scripts I've seen aren't meant to be piped to. They're just launched as simple, dumb, standalone "programs".