Isn't a bit of this governed by which programming paradigm your language uses? I get the feeling the answer and approach are much different when comparing Forth to Java.
My point was that the way your language builds abstractions might increase or decrease the problem.