The great Delete versus Backspace split
In the history of Unix, one of the great quiet divisions has been the split of what your erase character should be, with the choice being DEL (Ctrl-?) or Ctrl-H. In turn, this goes back to the physical serial terminals that for years were how you logged on to most Unix systems. In the days of real terminals, you wanted your Unix erase character to be set as whatever your terminal generated when you hit the big, prominent 'backspace' key (which was, of course, not at all programmable). Setting DEL when your key generated Ctrl-H or vice versa was a recipe for frustration and extra work.
If life was great, everyone would have agreed that the terminal backspace key generated one thing and we'd be done. Of course that didn't happen. As I remember it, most of the world's serial terminal makers decided that the backspace key would generate Ctrl-H, but Digital (aka DEC) decided to be special and have their backspace keys generate DEL. The Digital VT-52, VT-100, and later VT-series serial terminals were very popular, so Digital's decision had an outsized effect on Unix users. Adding to the fun for Unix users was the GNU Emacs decision to bind Ctrl-H to 'get help' and officially bless DEL as the (sole) delete character.
(It didn't hurt the (Unix) popularity of the VT series that for years you bought Digital computers to run Unix, first PDP-11s and later Vaxes.)
Although my history of this is somewhat complicated, I wound up in
the Digital 'erase is DEL' camp, partly because it's what at least
some of the hardware I used wanted to do and partly because it made
life easier in GNU Emacs. Given this, you can probably guess the
original cause of my swapping Backspace and Delete in X until
recently; I started doing this when my office
workstation changed from a DECStation to an SGI Indy. The DECStation's backspace key generated DEL
(and all of my environment was set up to deal with that), while the
SGI Indy's backspace key wanted to generate Ctrl-H. At the time I
made the rational decision that it was simpler to use
switch Backspace and Delete than to change my entire environment
(I don't know and can't remember what GNU Emacs's state was at the time as far as distinguishing the Backspace key from a typed Ctrl-H. These days they're definitely different under X.)
PS: I don't remember how the original vi behaved with Ctrl-H and
DEL, but I think it was friendlier than GNU Emacs as far as dealing
with a backspace key that sent Ctrl-H (at least if you had your
stty erase character set properly, which you probably did).