Las diferencias entre las distintas posibilidades que apuntas son variadas y tienen que ver con el ámbito en el que los estilos afectan a las páginas web. Es decir, dependiendo del lugar donde pongas los estilos afectarán a más o menos elementos de tu web.
Si pones estilos en una etiqueta HTML, sólo afectan a esa etiqueta.
Si pones estilos en la cabecera de la página, solo afectan a esa página.
Si defines los estilos en un archivo externo, afectarán a todos los ficheros HTML donde incluyas ese archivo externo.
Los estilos se sobreescriben unos a otros. Los que prvalecen son los que afectan a elementos más particulares. Es decir, si defines los estilos en una etiqueta dominarán a los posibles estilos que hayas definido para toda la página.
Todo esto está explicado en nuestro manual de Hojas de Estilo en Cascada.