> depends on the first joincolumn annotation
That is almost certainly a bug. It should check all the properties. (this assumption is probably why ImportedIdEmbedded doesn't do the checking... which is probably what should happen).
> This assumption is probably used every where within Ebean.
According to me it is used once - in FactoryAssocOnes which constructs a BindableAssocOne.
So then if some properties are updatable and some not ... then this should probably move the issue to the ImportedId object.... and a quick look at ImportedIdEmbedded ... the dmlAppend and bind methods are not checking for isUpdateable() isInsertable() on each property (so I'm thinking that is where a fix will end up).
... that's from my quick look anyway.