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.

Let me propose one more point. As far as search engines are concerned, they give not one whit about style but they do care about download speed. Adding inline style means that search engines are downloading style for each page that they do not need or want and consistently slowing your download speeds.