The recent activity report doesn't spit out consistent markup because each module has total control of the markup that gets spat out.
This makes it very difficult to style it - results in lots of extra CSS.
I think for every module the following is output
icon, title of module
user avatar, sub title, date of activity
So it doesn't make much sense for modules to be redefining the markup over and over inconsistently.
All modules should spit out the same markup - the only bit the module should have control over via a function in lib.php is the title per activity row. If absolutely necessary an 'extra html' function could exist to add extra html after the standard markup.