@whitequark The little language Jon Anderson built for the Fabrique build system had an explicit type for files, as distinct from strings. He did this so that you can add sandboxing things (the build system knows all of the files a tool should access and so can set policies around it) but I’ve found it something I miss in other environments.
I think there are two dimensions here:
What namespace are you talking about? UNIX defaults to the filesystem namespace because it was the only namespace originally (no network, no IPC except pipes) but these days you have different global (e.g. network) namespaces and different context-specific namespaces (e.g. the installed package namespace, or even the namespace of options this tool supports). Plan 9 addressed this by putting everything in the same namespace, but it often feels a bit shoehorned in.
What processing is done on this string to resolve it against things in that namespace.
Sigils feel like a good fit for the second because that should be a constrained set. Encouraging every application to do their own regex-like thing is probably bad, for example. The first set should be extensible, so sigils are maybe not the right thing here, but explicit namespaces that can be omitted when they are unambiguous might be nice.