This is required by the spec, which states:
Note that text decorations are not propagated to floating and absolutely positioned descendants, nor to the contents of atomic inline-level descendants such as inline blocks and inline tables.
The only fix is to apply the text decoration to the span
as well:
div {
color: red;
text-decoration: line-through;
}
div span {
float: right;
text-decoration: line-through;
}