creating dependencies on external code after compiling my Go code

Coming from in great part a VBA background (should I not admit that?), I know there how to reference external code in, for instance, C/C++ dll files. I might have VBA code that analyzes derivatives trades, wherein the VBA references C dll's that contain valuation functions provided by another group that I make use of in course. I declare the function signatures and the dll file path in VBA, and VBA calls the C functions as they are found at run time (when the C file is found with the expected function signatures).

I'm a novice experimenting in Go, seeing if I can make my tools more institutional. I am aware of and just starting to look at the avenue of calling C in Go. I guess that process should be similar to the above?

Would I have to have the C code present and immutable at the time of compiling the Go? Or could I, say, compile and test the Go code with my version of a C dependency--and then ship just my Go code and it would be possible for the next user to run my compiled Go with their own version of the C dependency (same function signatures, expected file path)?

And could the external code be Go instead of C? I compile my main Go logic with references to separate Go code (calls to functions there) in Go files that the next user can replace/substitute after they receive my Go (by following the file path and function signatures in my Go code)?

(Because my background is not primarily on the developer side and I've largely dabbled with various languages i just have no idea if this kind of interaction between independent files of complied code is totally standard operating procedure (in Go or in most languages) or is mostly not done or impossible.)

Maybe this could be called runtime substitution of an outside dependency?