The logic behind this implementation is:
- If the layer has a `styleFunction`, then it is used
- Otherwise, `ol.layer.Vector.defaultStyleFunction` is used, which looks for a `styleFunction` on the feature.

This way, if you don't specify a `styleFunction` on your layer, each feature will be drawn with its individual style. This allows you to override styles if you want by specifying a `styleFunction` on the layer.