MySQL: dos claves foráneas en una tabla que se refieren a otra tabla

Me he encontrado con algo que parecía simple antes, pero me hace rascarme la cabeza nuevamente. Tengo una mesa para usuarios:

user_id (PK) | username| email | something

... y una tabla de "vistas" para cuando un usuario ha visto a otro usuario:

view_id (PK) | viewer_id | viewed_id | view_date

"Viewer_id" y "seen_id" son user_ids, lo que me permite buscar por separado las instancias en las que un usuario era el espectador o el que se estaba viendo.

Inicialmente pensé que ambas columnas serían claves foráneas, pero después de haber creado las tablas en mi archivo schema.yml (estoy usando Doctrine 1.2) y especificado dos relaciones foráneas separadas (una para cada columna), parece que Doctrine solo toma en cuenta la primera relación externa enumerada entre estas dos tablas (user_id> viewer_id).

Ahora me confunde si este es el comportamiento correcto de MySQL, un problema en Doctrine o un problema en la forma en que me estoy acercando a esto, ¡o no hay nada de qué preocuparse! ¿Puede haber dos claves externas separadas de una tabla asignadas a la misma columna en otra tabla? ¿Es lógico, dado que un JOIN todavía me daría acceso a "vistas" a través de un user_id? ¿Me he equivocado?

Gracias por tu tiempo.

EDITAR: el archivo de esquema:

User:
relations:
View: {class: View, local: user_id, foreign: viewer_id, type: many, foreignType: one, alias: View, foreignAlias: User}
View: {class: View, local: user_id, foreign: viewed_id, type: many, foreignType: one, alias: View, foreignAlias: User}

... only difference is viewer_id/viewed_id

Respuestas a la pregunta(2)

Su respuesta a la pregunta