Ok, I’ll fill in some of the gaps I’ve found out so far myself, and try to be a bit more specific on the bits I’m still stuck on… 
So it seems that “Dependency” shaders are only used to control the somewhat arcane terrain shading system. I understand this to be determined by three shaders, as follows:
FirstPassShader (i.e. the “main” shader used by a custom material attached to the terrain)
The FirstPassShader is used for accurate rendering of near-terrain, and is applied to terrain that lies closer to camera than “Base Map Dist.” specified in the terrain inspector. It has properties for the control texture (_Control), and four textures (_Splat0 - _Splat3), which are automatically populated by the terrain engine with the first four terrain textures. It specifies additional “Dependency” shaders such as the BaseMapShader and AddPassShader described here.
BaseMapShader
All textures assigned to a terrain are combined (based on the control texture) into a single combined base texture, with resolution specified by the “Base Texture Resolution” parameter in the terrain inspector. This base texture is used as a fallback by old graphics cards that can’t use the FirstPassShader, and also for any terrain that is further away than “Base Map Dist.” (also specified in the inspector). This single texture is rendered using the Dependency “BaseMapShader” specified in the firstpassshader assigned to the terrain material.
AddPassShader
The FirstPassShader only handles four texture slots (whose weights are controlled by the RGBA channels of the control texture). Therefore, if you have greater than four terrain textures, the Dependency “AddMapShader” specified in the firstpassshader is called for each subsequent batch of 4 textures, and its output additively blended with the output of the previous shader. It’s basically exactly the same as FirstPassShader, but with blendmode set by decal:add
What I still don’t understand…
It is easy to verify that the AddPassShader gets called only when there are greater than four textures (by, e.g. deliberately introducing an error in the AddPassShader - everything will be fine until you add the fifth texture at which point the whole terrain turns magenta). What I don’t understand is that, if I don’t specify Dependency “AddPassShader” in my custom shader (and set Base Map Dist. to max to ensure that I’m not seeing the base map instead), I still see all my terrain textures being blended. I had expected to not see the effects of textures 5+, or perhaps get an error. Is there an additional default AddPassShader that kicks in?
Also, what about replacing the shader used for, say the trees? I’ve tried making use of the following Dependency shader settings found in the supplied terrain shader, replacing with my own, but they seem to have no effect?
Dependency “Details0”
Dependency “Details1”
Dependency “Details2”
Dependency “Tree0”