Gibt man nicht 'margin-bottom' für 'h1', sondern 'margin-top' für 'h1+p' an, dürften einige Multiplikationen und Divisionen entfallen.
Wenn man hingegen Konseqent bei allen entsprechenden blöcken den oberen Außenabstand eliminiert, kann man praktisch und ohne viel denkerei mit margin-bottom arbeiten (durchgehend) und erspart sich auch geschichten wie die von dir genannte.