@b0rk part of the lack of structure is due to the historical development of how these are interpreted. The kernel tty driver termios subsystem interprets some characters, depending on the termios ioctl settings. Some application level code, including, but not limited to, libreadline, changes these settings and then interprets some of these in user space. How libreadline interprets certain characters depends on the implementation and the settings (emacs vs vi mode and more).
@b0rk so, as @hanshuebner points out, a lot depends on exactly what software you are currently running, and how you have configured the various parts of the system. Now, most users will to a significant extent just use whatever default settings their system provides, and most Linux distros have very similar defaults, so most of this will be mostly similar for most users most of the time. Which makes it all the more frustrating when they run into something that is just a bit different...