This is already easy to do with vertex colors.
IMO what is missing is an easy way to make individual items have slightly different, unique appearances without creating new materials. Color differences are easy enough to do with vertex colors, but texture differences take a little more node wizardry to pull off.
Of course, you could use node-groups for this, but I think there’s a performance cost to having more materials when rendering. Perhaps all of this is out of scope for your project, since it should be possible with Dynamic Overrides soon enough.
I think it would be awesome to be able to access the current view-layer from the material nodes, to modify the material output per-view layer. Then again, this may be solved by implementing custom AOVs, which I understand is eventually planned for Cycles.
This is my first time looking at this branch in a few months, and I am extremely impressed by what you’re doing. The scatter node setup will be extremely useful for NPR rendering.
Does your new Vertex Color node remove the hard-coded color managent? It causes problems when using vertex colors to store data (e.g. - displacement, roughness, normal, etc.)