HTML is presentational in nature, so what's the point of separating presentational attributes from presentational tags?
With the current spontaneously emerged HTML standard we have a choice of using or not using separate style declarations, like in imperative programming we may decide to declare and give a name to frequently used constants, macros and functions separately. A library, in other words. Is library obligatory in programming? No. That would be just ridiculous.