cleanup of linkage processing code, part 2

This set of changes removes a lot of duplicted effort that occured during linkage processing.  And how: I get 1.68x better performance on one of my benchmarks.