if folks want per-face colors, I’ll probably just make users split vertices as necessary
they’ll just have to have 6 separate vertices
If that makes any sense.
Sure, this is the approach I believe was used for Mt. Crumpit in the VC skybox in the PS1 Grinch game (see the image in my post). Basically cut-and-paste into new mesh ('separate>selection' in Blender*), then paint. Perfectly fine for final assets, but can complicate mesh changes.
Another trick is to instead just add edge loops to contain the transition, so not exactly a hard edge but pretty close with a small enough face (this was Spyro's trick for mountains/clouds/celestial-bodies etc in its VC skyboxes, also Homeworld 2 see explanation).
Technically gltf does support face corner domain (as called by Blender* color attribute), though I can understand the multiple reasons you might not go that route especially early on. Basic VC does cover a lot of use-cases, and I'm not sure if your modelling method will have that sort of work-flow where it's simple+common to work with faces/topology directly like that (like for character design).
When you do get to textures/UV stuff you can also go that route for color via a palette as well. Assigning the entire UV map of a part onto the middle of a single pixel would also be the easiest first step to code, and a palette would make a lot of sense for this type of tool.
* I also am not so comfortable with Blender. It's not impossible for the low-poly stuff that I do, but I'm not a master with shortcuts and the modifiers bother me with errors or I-should-not-have-done-that moments.