protobuf - это просто формат разметки данных, заточенный на производительность. Структуру и семантику сообщений он никак не энфорсит.
Вот, на SO пишут:
"
Google designed protobuf to be pretty forgiving with versioning:
unexpected data is either stored as "extensions" (making it round-trip safe), or silently dropped, depending on the implementation
new fields are generally added as "optional", meaning that old data can be loaded successfully
however:
do not renumber fields - that would break existing data
you should not normally change the way any given field is stored (i.e. from a fixed-with 32-bit int to a "varint")
"
Точно такие же соглашения можно сделать по отношению к любому формату разметки.