The header element is a semantic element that accepts text content just like heading elements (h1–h6 element) do. It is not just a container element for other elements.
The header element usually has a heading element inside it, as the header element does not “introduce a new section in the outline”. But it is not required.
<header> element is not sectioning content and therefore does not introduce a new section in the outline. That said, a
<header> element is intended to usually contain the surrounding section’s heading (an h1–h6 element), but this is not required.
It would have been possible for the project requirement to ask for a heading element inside the header element, but there is nothing wrong with not having it. Each header element inside a section element will belong to that section. So it seems fairly reasonable to just have the header element without also requiring a heading element.
I can’t really answer why the project requirement was chosen to be done this way, only that it seems reasonable enough.