That makes sense since our first exposure to packages is with packages from others, and thus packages that have been distributed. So we get a biased view of what packages really are.
And creating a package with the code/data you want to re-use is a bit of upfront work. But since you asked a question about best practice, that would be it. And once it is done, you can load that code anywhere, anytime, from any project extremely easily. You don't have to worry about the paths of the files you source, etc.