On point 1:
That is fair and gives me pause. I'm interested in the scenario though. You seem to be suggesting that per an elixir lang deprecation you would have to adjust the level on in many of your libs? I'm not sure such a feature would be used by elixir itself, but you make a good point none the less. It also gives me pause in regard to the "too many options" problem. What is there now, is simple, that can not be denied.
On point 2 :
So, arguably the hard deprecation is not a hard deprecation and is in fact a soft deprecation, this is why I used the language "stronger" deprecation, but I hear your point. FWIW, I consider a hard deprecation a removal or something that explicitly results in an error, thus preventing compilation regardless of flags passed to the compiler. This is indeed where things get a bit odd. As far as emitting warnings in docs and change-logs vs the console via the doc option, I do like this myself, yet it does force your hand if you want or need to update a dep immediately. You are left with two options : turn off warnings-as-errors, which is terribly unappealing or update potentially hundreds of files at once, which is never a good idea IMHO. FWIW, the concern I've seen raised is around it simply not being noisy enough, that is emitting doc depreciation for a while. Noise is sometimes useful.
Both of your thoughts have given me pause and make me think that there is perhaps a better solution, and maybe even there's nothing to solve fo, although I am still terribly interested in being more polite in regard to depreciation though :) . We should all read docs and change-logs, and even better source code. However, I think it behooves the community to think about making a deprecation as widely "accessible" as possible. This conversation is also pointing the fact, that perhaps a lot of us are holding --warnings-as-errors wrong, or rather holding it because it's the only thing we have to hold in the spirit of safety :)
This also points to the fact that perhaps there needs to be more granularity around --warnings-as-errors, which is not something elixir can change itself. In fact, now that I think about it and without looking, I do believe the deprecation attribute augmentation I'm proposing also must be adjusted in erlang first. It is good to reach out to the people here to get a discussion going though.
I'll perhaps look to proposing this on the erlang forums and see what thoughts are there as well.