JSHint takes place on the (saved) file, instead of on the (modified?) buffer. Would you be willing to make an option so that the current buffer is checked instead of the file, like :%!jshint /dev/stdin does?
I could of course execute a ":w" before executing JSHint, but that is unwanted behavior.