If savings from reuse were proportional to the amount of code reused, then reusing 2000 lines of code would save twice as much as reusing 1000 lines of code. However, to reuse 2000 lines of code, that code must be understood and the costs of program understanding are not linear – the more code to be understood, the more effort it takes to understand it. Furthermore, more changes may be required, the larger the amount of code reused so this also adds to the costs of reusing more code.
Of course, all this is only true if the code has to be understood before it is reused. If it can be reused without change, then savings from reusing large chunks of code tend to be proportionally greater than savings from reusing small code fragments.