A more appropriate fix would be to be to get @page { position: relative; } working. That way, a <div> could be placed inside the page, the border could be applied to it, the headers and footers could be left alone, and you wouldn't need to add false secondary border properties.
The page border properly surrounds /everything/. That includes the headers and the footers. Any border contained within should be on a logical contained element.
There is, of course, always the css3 frame property...
Nonetheless, getting page position working has several other nice side effects. One such effect which would be important for people with page-positioning issues - say, photo book makers or puzzle book maters - tables with page-break-after: always could be used to handle vertical centering at the same time.
John Haugeland is http://fullof.bs/