Yes, it is one request per revision (plus one), on every page view, each computing a server-side diff that gets discarded. That’s why it reads only the most recent 20 revisions by default, capped at 40 to stay under core’s 50 requests core IP limit, so on long histories older contributors drop off.
A plugin removes all of that: one indexed GROUP BY user_id on post_revisions, added to the post serializer for the first post of wiki topics. Zero extra requests, full history, no diffs. Caching likely isn’t needed at that cost; if it were, contributor ids could live in a post custom field updated on revision.
The trade-off is that a plugin needs a rebuild to install and can’t run on some Discourse’s hosted plans, while the component installs from the admin panel anywhere.
I’ll think about it once I’ve tested it with more live traffic and I might decide to turn it into a plugin. In the meantime, the component is our starting point for exploration.