Tangled Up in Tools: What's wrong with libraries and what to do about it
pragprog.com
pragprog.com
To use a delightful term from Ted Nelson, you very much want to limit how the parts of your system are intertwingled (http://en.wikipedia.org/wiki/Intertwingularity). The less you have to juggle in your head at once, the better; he connected this to flow (quoting Joel S.) ... I'd put it "the less deep you have to get into flow the better".
Or to quote Brooks, limit accidental complexity (http://en.wikipedia.org/wiki/No_Silver_Bullet).