En general la gente que ha desarrollado lso cartuchos oficiales de
AndroMDA (Spring, Hibernate, etc) ha escogido una solucion de no
utilizar llaves compuestas (Al menos esto era así hasta la ultima vez
que investique al respecto). Ellos prefieren utilizar siempre claves
internas que trabajan sobre una sequencia por ejemplo y el resto
manejarlo con constraints de tipo UNIQUE.
Tengo entendido que este es un patro de diseño.