I am not sure this is really needed. I the same can be achieved using re-exports. E.g. you have m1.proto and m2.proto defining messages M1 and M2 you could make the library M like this:

library M;

export "m1.pb.dart" show M1;
export "m2.pb.dart" show M2;

which is even simpler than:

library M;

import 'dart:typed_data';
import 'package:protobuf/protobuf.dart'

part "m1.pb.dart";
part "m2.pb.dart";

If you want to have more code in the library using the message classes just import as well and add code either directly or in additional parts.

library M;

import "m1.pb.dart";
import "m2.pb.dart";

export "m1.pb.dart" show M1;
export "m2.pb.dart" show M2;

part "m_part1.dart";
part "m_part2.dart";

M1 createM1() => new M1();
M2 createM2() => new M2();

Given this I don't think adding the part_of option is needed. However adding a detailed description of the different ways of building libraries containing protobuf classes here would be great.