I can only agree with the two previous posters.
FrankJones, you make it sound like you have to change something in the code only in one place. But that is very likely not the case.
We have game logs and also we have replays on BGA. You probably need to change somehting there, too. You need to define color rules not only for the players playing but also for the external observer, and make it work for everyone in replays again. Then we have hotseat mode which might cause some trouble if one player with color preferences plays is on the same device like another player. (Shouldn't cause trouble but does it not?)
This is all doable and it might be easier than we make it sound. Or not. We don't know. The effort in a code change is usually not about how intellectually hard the feature itself is to code, but how it interfaces with the other systems, and how well maintained and synchronized everything is.
Our coding experience and intuition tells us that this change would cause more trouble than how it looks on the surface. I think that happened to every professional coder, you wanted to make a small change but you ended up making a lot of changes and debugging to make it work all the time. This change is indeed probably easier done on a game by game basis but then it's also inefficient and game developers have to deal with things like replays which they are not supposed to deal with.
The other thing you want to consider is risk. This is an operation at the very heart of BGA or at the very heart of a game. Even if a heart surgeon tells you that the operation they are going to do is very easy, you still have a hard time to decide to make a heart operation. It's similar in a code base. Recently BGA made a change in the visual look of the bugs section or made a change how and which emails are send, these are low-stakes operations. But changing the game state on screen is a high-stakes operation, nothing must go wrong, otherwise it's disaster.