Ok, so I create a surface shader, but unlink it from actually affecting the surface rendering and instead plug it into the tree population?
Or, alternatively, could I just use some surface shader that already has the constraints I want (e.g. the grass shader) ?