The other reason not to show fail/succeed is that it allows for gradations of responses (mostly in conversation, but potentially applicable everywhere). Examples:
Trying to persuade someone to let you pass. Different responses depending on your result:
Below 8: They are so offended by something you say that they attack you.
8-12: They know you're not supposed to be here and say so.
13-16: They hint that they would be willing to accept a bribe in order to let you past.
17-20: They let you pass.
21+: They let you pass and do something else useful (e.g. give you a map, fill you in on some juicy gossip, or send someone along to show you the way and guide you through the traps).
Trying to pick a lock on a chest:
Below 5: You irreparably damage the lock, making it impossible to open the chest, even with the key.
5-7: You fail, break your pick, and make some noise, potentially drawing unwanted attention.
8-10: You fail and break your pick.
11-14: You fail.
15-18: You break your pick, but manage to open the lock.
19+: You open the lock.
You don't need to have this many levels of success on every single check, but it would be really cool to have these kinds of things come up from time to time. It would work best if there is no known DC for the check.
This sounds like source of multiple suicides and hospitalizations of developers for loosing their mind.
Aka development hell.
