I think we should avoid replicating too many configuration options, especially those that can be configured as part of the Spark properties, as those should probably be configured in spark-env.sh for use on your entire cluster. It is definitely worthwhile to be able to configure environment variables, particularly those that are used only be the shell and nothing else, but I think there are a few properties which we don't need to have command-line options for:

- local-dir
- locality-wait
- schedule-fair
- max-failures
--mesos-coarse (this is only useful for the mesos scheduler and is probably a pretty serious decision one should make, rather than just being a transient option per shell)

Please feel free to fight back if you disagree on some of these options -- I just feel they don't need to be configured sufficiently often to be a command-line option, or that they have implications beyond a single shell session.