Maybe it's neat but this is not how anyone would write it today. This is the legacy code still left from the time before ajax was invented.
XMLHttpRequest has been around for about 7 years then and using it was called Ajax for about 2 years already.
Conceivably this would make the architecture more robust against vote-spamming attacks, and the approach would also provide an enhanced version of this benefit if using an external caching reverse-proxy service like CloudFlare or similar (though I believe HN does not use CloudFlare).
This is complete supposition on my part.
This is used for write-only GET requests (with graceful fallback when JS is disabled since those are plain anchor elements).