For renewal, Let's Encrypt has to validate all the hostnames again and uses port 80 for the http-01 challenge.
The alternative is to use the dns-01 challenge, but that would only be a viable option if your DNS provider has an API to add and remove the required records.
No, it uses the key pair for verification. Read here https://letsencrypt.org/how-it-works/ under “Certificate Issuance and Revocation”. It can do so, because it knows the public key already from the first invocation, where it already successfully tested, whether the holder of the key pair controls the domain.
If it would do a http-01 challenge, it should have failed, since port 80 is not open. But I have got a new cert. So it did work though it should not, if you are right.
Renewal requires a DNS-01, HTTP-01 or (deprecated) TLS-SNI-01 challenge.
However, authorizations can currently be reused for up to 30 days.
However however, Certbot’s UI doesn’t show this.
The new certificate was probably issued based on an authorization from earlier, without actually validating again, so it was successful even if validation would presently fail.