In the documentation we can find that The limits are based on a moving window that tracks the number of requests you send per hour.
(https://developer.foursquare.com/overview/ratelimits) but in the practice my rate limit isn't recharged even if I wait several minutes.
What happened? Did they change the implementation of API rate limits?
The window should still update be updating in real time.
To be clear, if your rate limit is 500, at 11:00, you send 5 requests, the X-RateLimit-Remaining will be 495. If you wait a few minutes to 11:05, and send another request, X-Rate-Limit remaining will be 494 -- it won't have reset yet.
It's not until 12:01 that you'll get back the 5 requests that you'd made at 11:00. So, if you request again at 12:01, your limit would be 498 (-1 for the request you just did, -1 for the 11:05 request). Requesting again at 12:06, and you'll be back up to 499 (the full limit, minus what you just used).