This mass funelling of inlinks, also called a Sybil attack are not that hard to defend against if one tweaks the Pagerank equations just a little bit. The source of the problem in the original Pagerank equation was that it used addition. The Pagerank of a page was defined to be the sum of all inlink weights flowing in. Now sum is a problem because it cannot distinguish between links from a million shitty pages, from a link from a golden page if the total link weight flowing in is the same. I seriously doubt if sum is used anymore.
The solution is fairly straightforward, dont use a sum, use a function that weighs higher values higher. An extreme example would be the MAX operator. In this case, among all the inlinks my site receives, only the one with the maximum inflow counts, all the crappy inlinks might as well have not existed. Max is brittle though and causes instabilities in the convergence, but variations of soft max works decently enough in theory. To phrase it in another way, the original Pagerank equations used the L1 norm of the in-flow vector, one can use Lp norm [0] or fractional powers Lp norms with a higher p . If one chooses p = \infinity one gets the MAX operator.
[0] http://en.wikipedia.org/wiki/Lp_space#The_p-norm_in_finite_d...