Responding to myself, and maybe this answer was evident to some (but not to me).
The Badges tab in the admin interface provides a lot of control over every single badge. Admins can enable or disable every badge, and they can also list it on the badges page or not.
Furthermore, a simple CSS rule hides the user lists, and (looking at the HTML source of the resulting page) gathering that data isn’t trivial, and maybe not possible, I’m not even sure.
.badges-granted {
display: none;
}
For these reasons, the current setup works fine for us, and probably fine for most as well.