The idea was to force people to use run. Why would people want to do this as opposed to run?

Run is a pretty thin wrapper around callMain at this point:
https://github.com/inolen/emscripten/blob/0c0af9576126faa423bd1fcf8c57271b5bf6b085/src/postamble.js#L131