I am reading about hardware-based 2FA and wonder about counter-based OTPs generated from, for example, a Yubikey. I have read that in these cases, a push of a button generates a string composed of a public key, a counter, and the OTP. The service verifies the OTP using the public key and the counter, and ensures that the counter is higher than a previously used counter using that public key at that service.
But a different service would not be able to know if this OTP (for counter 50, let's say) had been used someplace else. Am I correct or am I missing something? How is this dealt with?