I don't think this problem is really serious. If the push fails, you can just commit (locally) a new changeset that repairs the EOL or indentation problems, and push the whole bunch of changesets again (I assume the server-side hook will not examine changesets individually, but only the last of them?).
Yes, the server-side hook will have to work like this in order for people to fix mistakes like you just described.
Not necessarily. People could also be required to go back and replay all changes.