(Since we are here at SE.SX, a more strategic approach may be a valuable augmentation to the usual technical considerations.)
[preamble] The HTML5 spec is a continuously moving target, and they have a policy to follow-up on established common practice. They obsoleted and resurrected features in the past, changed the meaning of others, shifted the focus of methodical recommendations etc. It's not written for all eternity with all the wisdom of humankind available all at once. The spec is not a sacred source of truth. It's only natural that sometimes the browsers are right. [/preamble]
OP's situation is overwhelmingly common and valid.
You have a CMS, with its theme designed and installed, all the CSS loaded properly from HEAD, then there you are, the page editor, left with a fashionable WYSIWYG box that you can (thank God!) switch to "source mode" and type (paste) in HTML markup (previously crafted elsewhere, with more suitable tools). Fortunately you can even include
STYLE tags (perhaps due to a serendipitous omission in a tag filter)... The day is saved, from a lot of repetitive soul-destroying grunt work. But you still have no means, whatsoever, to interfere with the HEAD element of the system from a page edit scenario.
Should that rip you from using your CSS in a straightforward way with your HTML fragments, just because the spec says so?
Or, you have a single-page AJAX application.
It's running without reload for a long session, and there are syndicated content coming from various random sources, all arbitrarily and independently styled. Requiring them to be first converted to use only inline
STYLE attributes instead of just coming with an embedded
STYLE element would be absurd.
Moreover: you can a) already embed any CSS anywhere in the
So, what exactly is so evil about
STYLE elements in the
BODY? What are those extra adverse implications that it would add to our wide arsenal of abuse to HTML constructs? More poor performance? Probably. Sometimes.
Is that a valid reason to abolish this incredibly useful practice, supported by every browser for a reason? Not in a million miles!
We are not idiots. Well, not all, or not always... ;) Techniques with the risk of poor performance could simply be documented, rather than just forbidden. We used to have Java applets in the early days of web, and survived. Cars can be misused, causing misery, even food can be used in disturbing, inefficient ways, and drivers who can eat may be, on average, even more stupid than the average web designer. Besides, Dear W3C, no need to worry: the angry herds of HTML tinkerers having their legs shot off with
STYLE elements in the
BODY still can't go after the W3C and take revenge. They don't know the address. And they have no legs.
So, please: do make your voice heard for
STYLE becoming legal in
BODY! Obediently citing the text, but failing to provide a viable alternative that's better than the current situation is of no help. It's actually a threat to this last-resort workaround technique.
Remember: the HTML5 spec is called a recommendation.