Muitos programas X (incluindo o Urxvt) que usam recursos carregam ~/.Xdefaults quando iniciam e aplicam os recursos que encontram lá. Quando eles fazem isso, eles não aplicam nenhum pré-processamento, então suas diretivas #define não têm efeito, o que explica as mensagens como
urxvt: unable to parse color 'S_base0', using pink instead.
O programa Xrdb carrega um arquivo de recursos no servidor e esses recursos se aplicam a todos os aplicativos que são iniciados subseqüentemente. O Xrdb pré-processa o arquivo de entrada com o pré-processador C cpp (a menos que seja instruído de outra forma).
Se alguns recursos aparentemente mudarem quando você alternar de .Xdefaults carregado por aplicativos para .Xresources carregado no início da sessão, isso pode ser devido a alguma outra parte de sua configuração (talvez de um sistema) outra coisa depois. Se carregar .Xresources manualmente depois que a sessão começar faz a diferença, é isso que está acontecendo; você precisará verificar suas rotinas de inicialização da sessão e do gerenciador de janelas. Verifique quais são os recursos reais com xrdb -query | grep '^Xft' e com listres Xft .
A maioria dos aplicativos Gtk ignoram os recursos do X, você precisa usar configurações do fontconfig .