Nee, dit heeft te maken met hoe redirection werkt.
Sed schrijft zijn output weg naar stdout. Met > zorg je dat stdout geredirect wordt naar een file, maar dit gebeurt niet door sed, maar door je shell (waarschijnlijk bash). Als je shell het volgende ziet:
Dan opent je shell de file bar, knoopt stdout aan die file, en start foo. Foo denkt dat hij naar stdout schrijft en hoeft dus niks speciaals te doen. Maar, de shell moet de redirection opzetten (en dus een lege file bar aanmaken) voordat foo gestart wordt.
In jouw geval wordt stapel.html dus geleegd door je shell, nog voordat sed gestart wordt.
Overigens zijn er goede redenen voor een dergelijke aanpak, in het volgende commando
kan sed telkens een beetje lezen van foo, bewerken, en dan wegschrijven naar stdout/bar. Daardoor hoeft niet de hele inhoud van foo in één keer in het geheugen te staan, wat wel zo prettig is bij grote files

Ik weet niks zeker, maar het klinkt mij in de oren als een GNU extensie. Als dat klopt, dan loop je het risico dat het op andere Unices niet werkt. Hoe erg dat is mag de TS zelf bepalen voor zijn situatie