Hallo,
Ja, es ist richtig, wenn man bei allen p.* ein margin:0; padding:0; zufügt, geht es. Warum wird das aber nicht von oben bei "body,html" übernommen?
Die eigentliche Erklaerung hat Dir MudGuard schon geliefert.
Die meisten Browser verwenden intern etwas aehnliches
wie das "Sample Stylesheet":
http://www.w3.org/TR/REC-CSS2/sample.html
Dort haben P, UL, OL, DL und andere Block-Level-Elemente
oben und unten einen margin von 1.33em.
Gruesse,
Thomas