Gli warning che restituisce il validatore non sono errori, ma appunto semplici avvertimenti. Il validatore non può sapere se ad es. un valore viene ereditato da altri elementi, quindi ti avverte che potrebbero esserci problemi (nel tuo caso, nessun contrasto con i colori di sfondo e di primo piano, perché non hai specificato entrambi per un elemento, e quindi il validatore non sa se lo sfondo dell'elemento su cui appare il testo ha un colore tale da permetterne la lettura).
Il warning sul color e il background-color è uno dei più tipici, ma proprio perché è solo un warning, puoi non dargli alcun peso: se non ci sono errori, la pagina è valida. Lo stesso vale per i warning sul border e sul margin che ti dà: quando imposti una proprietà e poi ne reimposti il valore nella stessa regola, il validatore ti avverte (tipico il caso dell'hack per la min-height in IE).

Per la seconda domanda, in effetti l'importanza sta tutta nel risparmio di byte. Io personalmente apro la graffa subito dopo il selettore, separandola da esso con uno spazio. Andando a capo invece risparmi appunto 1 byte dello spazio e quindi il CSS è un pochino pù leggero...ma niente di più.