If you have things as libraries, make those libraries into profilable objects. I would spend time combining libraries and refactoring away methods. In my experience, 1000 libaries and 3000 methods is someone too steeped in Java and less in realworld software engineering.
Why are you so concerned with compile-time safety? Wouldn't it be better to spend some time worrying about error-management?
My criteria for good software:
Does it work?
Can someone else come in, make a change, and be reasonably certain no bugs were introduced?