I'm integrating reCaptcha into an ajax contact form. It works... only for the first 2 minutes. reCaptcha expires after 2 minutes, but the widget doesn't change. It doesn't say "session expired" or anything like that, just "Success" and the only thing a user can do is to reload the page and try to submit the form under 2 minutes. Also the data-expired-callback doesn't fire, but data-callback works.
The website is a test environment on a live a domain, I allow only my ip to access it, but since everything is on clientside, why would Google need to access my website in order to expire the captcha widget. It wouldn't make any sense.