Look there:
Port 80 is a standard-port. If someone controls port 80, he controls the domain. An exotic port wouldn't do the same.
If you use your webserver alone, the downtime isn't relevant. But if the webserver is public, such a solution isn't good. The http-01-challenge works without restarting the webserver (and without a dns-api), so it's wonderful.