It probably would work, provided that each client takes the original proto file and removes all the fields they don't use, so they are treated as unknown fields?
I don't know if there's a supported way to do this, though. To leverage it for refactoring, there would also need to be a way to do a query to find out out which clients use which fields.
How’s it different from the proposed model where you start by parsing the data you receive and, once it’s parsed and know it’s good, you process it?