Okay, then
div.chapter > :last-child { clear: both; }
That almost works. It stops the floats one element before the end of the div, though, so you end up with a gap before the last paragraph in most cases.
It does have the advantage, AFAIK, of not creating an extra line break.
I think that depends on browser, I think some do put a line break around divs.