Sí, es posible, pero tienes algunas opciones.
Opción 1:C como subdocumento
Si realmente quiere usar subdocumentos, no necesita crear un modelo separado. Debe cambiar su referencia a la matriz 'c'.
var C = new Schema({...});
var B = new Schema({c: [C]});
var A = new Schema({c: { type: ObjectId, ref: 'ModelB.c' });
var Model_A = mongoose.model('ModelA', A);
var Model_B = mongoose.model('ModelB', B);
Opción 2:C como modelo
(Solo presento esto como una alternativa, ya que su ejemplo parece redundante ya que crea 'C' como un Modelo separado y como un subdocumento)
Alternativamente, puede tener sentido tener colecciones separadas, puede crear un modelo de mangosta para cada una. Cada uno será una colección separada:
var Model_A = mongoose.model('ModelA', A);
var Model_B = mongoose.model('ModelB', B);
var Model_C = mongoose.model('ModelC', C);
En este caso, es posible que desee hacer referencia directa a cada modelo:
var C = new Schema({...});
var B = new Schema({c: { type: ObjectId, ref: 'ModelC' }});
var A = new Schema({c: { type: ObjectId, ref: 'ModelC' });
El Punto
Sí, es posible, pero debe elegir si desea C como modelo o subdocumento.