So I'd be hesitant about calling exception chaining a failure (like
the OP, not Steven, did) for a while yet. And even then, I would't
call it a failure, just a relatively niche feature that is helpful in
some uncommon cases.
I didn't call exception chaining a failure. What is currently a failure is the "raise foo from bar" syntax, and the accompanying difference between "Direct cause of" and "During handling of". I love this feature and I want it to succeed.
The thing is, it's not enough for some packages to use "raise foo from bar", while others (like Django) don't. Most Python developers don't know about this difference between "During the handling of" and "The above exception was the direct cause", because "raise foo from bar" isn't that prevalent yet. This is a chicken-and-egg problem, because as long as project maintainers don't use "raise foo from bar", the exception chaining wouldn't show the correct text, and people would get used to the fact that they can't rely on this text to be correct.
Like any chicken-and-egg problem of changing people's habits, the best we could hope is to move it forward at a glacial pace-- A situation somewhat similar to the move to Python 3.