It is not specific to Emacs. And yes, it came from a time when a multi-user site (organization, school, company,...) installed Emacs for multiple-user use.
And yes, this is still the case sometimes. A company or other organization can well provide one or more company installations of Emacs, and provide company-specific customizations in site-lisp.
Would it help to simply set package-user-dir before installing the packages?
(setq package-user-dir "/usr/share/emacs/24.3/site-lisp/elpa")
Assuming you have write access, package.el will install the packages there.
If what you are asking is "how to include source code in my Arch package", it doesn't seem to belong here but maybe https://unix.stackexchange.com/.
Are there configuration options Emacs' makefile that mean make install copies the C sources too?
What's the correct way to set find-function-C-source-directory in the package? Create a site-lisp?
You can re-add /usr/share/emacs/24.5/lisp/ to the start of the load-path by doing something like this
(push "/usr/share/emacs/24.5/lisp" load-path)
While this will work, this is system/installation dependent, I found one installation independent way to get path to lisp startup.el
(expand-file-name "../lisp" data-directory)
Combining these together the ...