Nope, keep it coming!
All valid concerns. I will think about it a bit more and come back with a revised patch.
One idea for your second point could be that only --normal can be overwritten by later style options.
Your example is also showing why Eric's idea of a wrapper script is not that simple: I sometimes do use `diff -U0`, and thus his recommended `exec diff --unified "$@"` would suffer from the same problems.
Perhaps adding a new `--default-style` option which is only used when no other style is specified is also an option. That way, I could have my local diff run `exec /usr/bin/diff --default-style=unified "$@"`. And still better than an environment variable. One slight problem is the funky way that --default-style=unified=7 would look like. And of course that this has to be parsed again. So perhaps we could get aways with only supporting normal, unified, and context as values for default-style.