As Cotty explained...
A component-definition initially has the default material applied to its faces.
You can then apply a material to an instance of that component, thereby changing its appearance.
You could insert several instances and give each of those a different material.
But the underlying component-definition still has the default material for its faces.
If you edit the component and apply a material onto some faces then those faces will always be displayed with that material - however, any faces within it which have the default material will display with the material applied onto its instance [if any].
So if you want the component to always show a particular material add that to the faces within it...

An example where this is useful could be with a simple low-poly car component.
Make the component and initially set all faces to the default material.
Edit the faces and apply a glass material to windows, black to the tires, red to the tail-lights, grey to the interior etc... but leave the bodywork 'default'.
Now with just one component you can insert several instances and paint those, red, blue, white etc and they'll all look different, but will use the one definition...