>>47496278It's a sensible thing to do programming-wise. When you have a pokemon that can become any type, you assign each form the same number as the type, so you can just look up the form with the type number. The ??? type is smack-dab in the middle of the list, so you either need to write extra code to skip that entry (converting type id to forme id), or you just add a dummy entry to avoid future confusions and keep things working.
Each forme just needed a color, making a ??? forme took 0 extra work and kept things consistent. They could've copied the Normal-type colors but they already had a color palette for every type including ??? so why bother.
And yes it's useful to not have the game crash with things like this, mostly for during testing (when forme/mon ids change but an old save file is loaded) but also to prevent a different bug/ommision wreaking too much havoc, like multiplayer not verifying the forme ids correctly. Crashing is just really annoying if you can prevent it easily.