Cita: ¿En que casos mereceria la pena hacer dos tablas y en que casos mereceria la pena hacer una?
Eso se definiría de la siguiente forma:
A debe tener M --> M pertenece a la misma tabla, porque el atributo M es obligatorio.
A puede tener M --> M pertenece a otra tabla, porque el atributo M es opcional y por ende puede quedar vacío en muchos casos.
En ti caso, hay dos formas de verlo:
1. Como jerarquía, existe una misma entidad "Mensaje" que posee dos entidades herederas: "Ordinarios" y "Amistad"
2. Como tablas independientes: Un usuario puede tener mensajes "Ordinarios" o mensajes de "Amistad". Son dos tablas relacioandas con el usuario.
¿Por qué no son la misma tabla? Porque tienen un atributo diferenciador: Una petición u oferta de amistad requiere una respuesta para confirmar. Un mensaje ordinario no. Entonces se analiza de diferente modo.