Just to see what happens, I enabled warnings in C4/Reserves.pm. All of the warnings were of the form
Subroutine * redefined at C4/Reserves.pm line *.
This is happening because of circular dependencies, e.g.
C4/Reserves.pm
uses
C4::Members
C4::Circulation
Those modules in turn use C4::Reserves. None of the functions used in these modules is actually called in C4::Reserves, but removing the calls to use C4::Members and use C4::Circulation from C4/Reserves.pm isn't enough, apparently there's a deeper circular dependency there.
I suspect that there are a number of unnecessary 'use' statements peppered throughout the C4 namespace; cleaning those up might fix the problem entirely, or at least allow us to resolve any remaining circular dependencies easily.
--Barton