Hello danh,
actually rlwrap and readline are not doing at all the same thing, but are instead solving the same problem. In fact rlwrap uses readline itself in order to wrap another executable missing line editing support.
Linenoise instead is intended to be an alternative to libreadline itself in order to provide built-in line editing capabilities.