Czy hacker może czyścić zmienne sesyjne przy "każdym przebiegu pętli łamiącej", co skutkowałoby tym, że nigdy reCaptche się nie wyświetli?
Wystarczy, że wyczyści ciasteczka (a konkretniej ciasteczko z identyfikatorem sesji) i po sprawie, powstanie nowa sesja.
Jak się przed tym zabezpieczyć?
Obawiam się, że w 100% skuteczny sposób nie istnieje... Możesz to weryfikować po IP i gdzieś u siebie zapisywać, tyle że IP łatwo zmienić (proxy, VPNy, zmienne IP po prostu od dostawcy). Poza tym, za jednym IP może się kryć wiele urządzeń/osób. Jest local storage w przeglądarce, ale też można go łatwo wyczyścić. Możesz sprawdzić jakieś dane przeglądarki, np. wersję, silnik i nazwę (tzw. user agent), ale to też idzie łatwo zmienić i jest powtarzalne. Były też jakieś biblioteki, umożliwiające identyfikację przeglądarki poprzez odczytanie jakichś ustawień i innych rzeczy (browser fingerprint to się chyba ogólnie nazywało), ale i to nie jest gwarancją bezpieczeństwa.
Także moim zdaniem możesz co najwyżej utrudniać życie łącząc te wszystkie rzeczy w jakiś sposób. I pewnie jakąś część osób to powstrzyma, ale trzeba też uważać, aby za mocno nie utrudnić życia przypadkowym użytkownikom. Żadnego pewnego zabezpieczenia nie znam.