I keep hoping to see a single example of effective code reuse before I stop working. A wise man once told me "reuse is at the team level" - you reuse teams familiar with the code, not just the code. No point in paying for the learning curve twice...
Yes!
That's up to him/her. When I get a new code base, I tend to create a to-be-deleted branch and put in all sorts of instrumentation to establish what the rules of it are.
IMO, the biggest sin programmers commit is trying to make ever second count as "productive time ", working towards an assigned goal. You gotta spend time with a code base to get to know it.