You shouldn't think of it as running libraries. The propath is a search list. So, although it's a simplification, in this context think of a procedure library as being like a directory.
If your propath looks like this:
and all of those directories contain a file foo.r, the code
run foo.p
will run dirA\foo.r, the first instance of a matching procedure in the propath.
The same will be true for procedure libraries. You can have multiple procedure libraries in your propath and they will be searched when running a procedure. The first location in the propath (directory or .pl) in which the procedure is found is the version that will be run.