Die Antwort auf Ihre Frage ist "ja, aber...".
Es ist möglich, ein Mitglied namens Id zu haben, das nicht ist dem _id-Element zugeordnet. Zum Beispiel:
public class X {
[BsonId]
public ObjectId MyId;
}
public class Y : X {
public string Id;
}
In einer Klassenhierarchie jedoch muss das _id-Member an der Wurzel der Hierarchie sein (mit anderen Worten, alle Mitglieder der Hierarchie müssen sich darauf einigen, dieselbe _id zu verwenden).