How should I install software from source so that I can make my configuration manageable and reproducible?
I think that a package manager will do most of what you need. I will show macports as that is the one I know but the others have similar functionality.

If you use the standard packages ie the up to date ones that have been packaged then macports will do all the dependencies for you. e.g. building scipy knows it has to build numpy first and will do it. You can also ninstall a port easily - macports will tell you if any ports depend on it. If a port is chnaged then macports will update the ports depending on it.

You can also manually chnage the port to deal with development versions of numpy for example. You will have to produce a copy of the port file and edit that see macports guide. The minimum would be to change the version and the rules for downloading so you get different code but can include many patches for OSX specific functions.

You can keep track of what you have installed by port list (also more advanced calls to minimise the number of commands you need. The changes you made will be in your local  Portfile repository  which will need to be backed up and a small change to the defualt macports config made.