"Similarly, why do styles defined in the HTML (in a style tag) take precedence over those that are linked to externally? It has always made more sense to me that it should be the exact opposite. An HTML page could define default styles for its elements, which would be carried in the page, and overriden with an external stylesheet."
Well that statement is just peculiar. Most people define the style of elements in CSS stylesheets. However, in certain cases, like positioning a single image where is does not make much sense to create a new CSS style, it can be defined in inline, overriding default properties. At least for me, it is always the other way round.