Mmmm... el problema que le veo a esa solución es que un mismo campo se está refernciando a tres tablas diferentes, cosa inadmisible en los DBMS que conozco. Solamente podrías implementarlo programáticamente, pero no podrías mantener una restriccion de FK.
A mi entender la cosa tiene dos opciones:
1) Crear una relacion padre/hijo con las tres tablas, las que hereden una PK de una tabla "Documento", que las agrupe, lo que permitiria que la tabla Anexo apunte a la PK de la tabla padre.
2) Crear tres tablas de anexos, una para cada tipo de documento.
Personalmente me quedaría con la primera opción:
Cita: DOCUMENTO(id_documento, id_tipodoc)
TIPODOCUMENTO(id_tipodoc, tipo_doc)
INCIDENCIA(id_documento, ....)
INFORME(id_documento, ....)
CONSULTA(id_documento, ....)
ANEXO(id_anexo, id_documento, ....)
Ahora bien, si la cantidad de datos de un anexo para un tipo de documento es diferente para al menos un tipo específico, este modelo no es aplicable y debe obligatoriamente usarse una tabla para cada tipo de anexo, o una tabla de tercer nivel para los datos opcionales. No es admisible en el modelo relacionar usar campos opcionales nulables. es un error de normalización.