How aud blocks cross-service replay
Imagine your auth server issues JWTs that the billing API and the analytics API both consume. Without `aud`, a token issued for billing is also valid against analytics — a frontend bug that leaks the billing token (e.g., embeds it in a third-party analytics request) effectively leaks analytics access too.
With `aud: "billing.example.com"`, the analytics API rejects the token because its expected aud (`analytics.example.com`) isn't present. The leak is contained to one service.