I didn't need it, but it's a good idea. I didn't test all the scenarios where the line breaks are added and it is entirely possible that there are some where spaces are stripped.
Thanks so much for this fix, Hamish. It was a very annoying problem for me. I also needed a sentence summary of each post, so I adapted your fixed function:
$content = new Text('Content');
$content->value = Convert::raw2xml($this->Content);
$firstParagraph = preg_replace( '/((\n)|(\r))/', ' ', $content->FirstSentence());
$parser = new BBCodeParser($firstParagraph);
In trac it appears this has been fixed properly, although it hasn't made it to release. This is the newer fix, which should work without the dodgy preg_replace's.
$parser = new BBCodeParser($this->Content);
$html = new HTMLText('Content');
Still waiting for an official next release of the blog module.. maybe they just assume that everyone uses subversion?