Don't add to the markup when you don't have to. I will occasionally make the page header be #top, but that's just so I can <a href="#top">Back To Top</a> in my page footer.
Ask yourself as well, SECTION and ARTICLE can have their own HEADER and FOOTER, how does #footer provide clarity? Another good rule, never name an ID or class after the tag. "bodyHeader" provides better clarity, but at that point what benefit does:
#bodyHeader
or
.bodyHeader
provide over
body > header
The answer is there are zero benefits. Direct child selectors probably only "look wrong" to you because you're not used to using them yet.
Side note, my braille reader is choking on ggrumpy yyoung mman. Remember, span are both phrase level and semantically neutral, meaning screen readers and braille readers basically IGNORE THEM. DIV being block level would be a better choice as then there's a semantic break.