because it's a perk, not an actual body part or a status effect. status effects like the hair flower have additional fields to denote extra information such as color. the parser system actually has something to look at.
a perk is functionally just a switch, the game sees it as either off or on, no other information.
the question then is why it was chosen to be a perk and not a status effect. i would speculate that it may have to do with the radiation resistance component and how it interacts with the rest of the game's systems. alternatively, it being a status effect may have created too many cases where other things interact with it improperly, something like the immunobooster just removing your spikes (as the immunobooster does remove the hair flower).
therefore, the "more of a pain to code then it is worth" would likely be those cases. there could be any number of reasons that internally they don't want to use status effects for something like this.
on the other hand, vanae markings are a perfectly functional cosmetic status effect. the main difference between the two being vanae markings uses accent color
, a parameter stored with Steele's body itself rather than in the status effect. the spikes do not have such a corresponding parameter, unless accent color is reused in which we are back to the problem of limiting customization. vanae markings also do not have any other mechanics to them, while the spikes have the radiation resistance component.