You are forgetting one critical issue. CSS files can be cached. This means that there would be a significant drop in bandwidth usage using an external CSS file vs in the header. However, I do understand automation since that is the world where I live. Still, I do not insert style into the header ever except for tools that I create.

It may be that static style can exist within a style sheet and dynamically code driven style can exist within the header. This is one time that splitting the baby makes sense. Still, I have found that almost always there really is no real need for dynamic style and that changing a style element or creating a style element is so trivial that I prefer external style sheets.