However when JS and AJAX is used, it's expected that it also avoids an entire full-page HTML response that goes unused. It can easily be a 204 instead.
As for the rendering engine, a iframe tag per comment is nothing compared to the pile of JS that's normally there on other sites.
On the client, iframe tags are entirely separate browser windows and can use up considerable resources. It's like opening up hundreds of tabs and is far more intensive than running some javascript code which is quickly parsed, compiled and cached in modern JS engines.
These are my network requests when I vote with JS enabled.
It's not any lighter, it's just not reloading the page.
The page reloads and re-renders with the UI changes (up-down buttons hidden and unvote link added). However, the reload takes noticeable time, and you lose your scroll location, which is disorienting.
With JS enabled, the UI changes happen instantly, and the scroll position doesn't change. The page still reloads, but the reload is directed into a new Image object which is immediately garbage, so it's off the UI timeline. But it's inexplicable bandwidth waste, nonetheless!
You can't do much with the response without JS but a single upvote doesn't change anything on the page so there's no need for the reload.
Not much, but it does hide the arrows and shows an undo link on the comment.