Respondendo minha própria pergunta aqui, como eu descobri. Estudar /usr/include/linux/keyboard.h revelou que pode haver 6 desses caracteres mortos a serem levados em conta. Depois de olhar o que está no struct kbdiacrsuc, eu criei isto:
switch (entry.kb_value) {
case K_DGRAVE: accent = 96; break;
case K_DACUTE: accent = 39; break;
case K_DCIRCM: accent = 94; break;
case K_DTILDE: accent = 126; break;
case K_DDIERE: accent = 34; break;
case K_DCEDIL: accent = 44; break;
default: /* whatever... */
}
Em seguida, fazer uma pesquisa com um desses como diacr e outro caractere como base gera o caractere acentuado desejado.