Okay, this is intentional.

`::TopLevel` or `::Reply` never get fired themselves, so this doesn't get called on them.

From `::Edited`, I removed

    sub related_events {
        return map { $_->etypeid } ( $_[0], "LJ::Event::JournalNewComment::TopLevel", "LJ::Event::JournalNewComment" );
    }

Which ends up being `( "...::Edited", "...::TopLevel", "...::JournalNewComment" )` -- before my addition of `::Reply`, this returned `( "...::JournalNewComment", "..::TopLevel", "...::Edited" )`

As far as I can tell the order does not matter, so just listing all 4 for this and the 3 subclasses seems to be fine.