In terms of implemtnation, ~/.Xresources and ~/.Xdefaults are *unrelated*. They happen to have a similar syntax...
If and only if there are no resources loaded on the server that $DISPLAY points to, a program will look in ~/.Xdefaults. Typically, ~/.Xresources is fed to xrdb and thus into the server's resources. In debian, as recommended in X(1), /etc/X11/Xsession (which is run by startx directly, and by xdm through the DisplayManager*session resource listed in /etc/X11/xdm/xdm-config) loads those resources... so if the user has a .Xresources file, .Xdefaults should never be consulted. This is good, because .Xdefaults is actually a relic from the X10 days - xrdb is far better, because it can define macros based on attributes of the display, like size and depth, and thus let the user customize applications based on what they are actually talking to, something .Xdefaults doesn't provide.) It turns out that Xsession will also load /etc/X11/Xresources/* so if that is populated (which it is by default, xbase, xbase-clients, and xterm all put things there) so that ~/.Xdefaults should really *never* be referenced unless you some how manage to run "xrdb -remove"... Hope that clarifies things a bit...

