I always thought it was because packages could be enabled and disabled at will but that seems more logical.
Well also that I suppose. If a function was messed up you'd be able to trace, run the function, and see which packages have overwritten it, and then narrow it down by switching them on and off.