Firefighter skin has different color than civilian, so it'd bug out for any player joining to server _after_ you went on duty so no, it wouldn't make any sense to create a script like that.
The colours of the blips (minimap) and name (in chat, above character head) did become bugged early on when the option to go undercover without /c kill and /kill was available.
But I think we managed to work towards a solution, and people could go from being a civilian direct to undercover (FBI/VCID) and then even to normal police, with implementation of /c duty cop option to help SWAT and FBI change back.
The colours seemed to change and remain consistent. We tested it with the medic skin as well - going from police to undercover to medic, through different scripted rights.
Yellow/white - blue - yellow/white - red... took a bit of playing around, but ended up appearing correctly to all players.