J'ai trouvé quelque chose qui ressemble à ce pourrait être le cas, si quelqu'un pouvait vérifier que c'est correct:
modelBuilder.Entity<SecureMessage>()
.HasOptional(x => x.ParentMessage)
.WithOptionalDependent(x => x.ChildMessage);
Donc, après quelques tests sérieux, cela semble en effet être la solution.