Meta question. Can anyone explain to me why the source
files start in one place, get copied to another place
before being finally copied to where they should have
been put in the first place?
Well, basically you start with source files in lib.
The make process "compiles" these into blib/lib (platform neutral) and blib/arch (architecture-specific).
In ordinary pure-Perl modules this can look a little odd. For modules with C-code or that uses File::ShareDir and other things, the blib/lib and blib/arch file carry some significance.
Specifically, when make test runs, the tests are run against the "compiled" modules and not against the original source files.
Things like autosplit/etc also make use of these techniques.
Then when you install the built files in blib are copied to the relevant places in the underlying system.