I had actually considered overloading system, but decided against it, at least as the primary interface. The reason was that the code is destined for two groups pf people - newbies and people writing large scale code who need a more maintainable solution. Overloading system for either group seemed to be the wrong way to go - especially because all of system's features are not supported
As for remembering more details with this module - what's to remember? It seems that remembering to chain your error variables to find the correct one is harder than print $RUN_ERROR. But then, I wrote Shell::DWIM to minimize my surprise. What exactly is it about the level of detail do you think makes this harder than system or japhygesis?
Light a man a fire, he's warm for a day. Catch a man on fire, and he's warm for the rest of his life. - Terry Pratchet