Dit heeft met CSS3 niets te maken, margin en padding zitten volgens mij al vanaf het begin in CSS. Die eerste regel past de inhoud op ieder! element toe. * is een zogeheten wildcard en kan overal voor staan. Als je die regel gebruikt moet je dus zelf voor ieder element de gewenste padding en margin opgeven, de standaardwaardes die browsers zelf gebruiken gelden dan dus niet meer. Dat geeft je meer controle maar kost ook meer tijd.
De twee de regel past die padding en margin alleen toe op de elementen body en html, op die manier krijg je geen randen om je site heen, mocht een browser die willen plaatsen.
NB: HTML5 staat hier uiteraard helemaal buiten, we hebben het immers over CSS.