Yes, it is complicated.  There are active discussions about the way to change how pedestrian crossings are tagged in general.  For instance, a zebra crossing should be "crossing:markings=zebra" instead of "crossing_ref=zebra".

For rainbow crossings now.  In the beginning there was no tag.  After a mailing list discussion I suggested "crossing:marking" on nodes.  And we implemented this with MapComplete.

Then, "crossing:marking" was explicitely deprecated.  The wiki now recommends "surface:colour" but this is a tag for ways, not for nodes.  It makes it non-trivial to change in MapComplete because now we’ll have to rewrite the theme to make it work on ways, and find out how to deal with the nodes created earlier; e.g. what should we do if the crossing is just a node with no footway?  I had already manually changed the old tags on all the ones in Brussels but still haven’t found time and effort to redesign a MapComplete theme.  (Pieter participated to the tagging discussion on the wiki, so I thought perhaps he was about to do it himself.)
Anyway, this is the option that seems to have the broadest consensus so far.

I see now that "crossing:markings" is proposed, but the Talk page shows some opposition to this.  (https://wiki.openstreetmap.org/wiki/Talk:Key:crossing:markings#What_about_rainbow_crossings?)  Probably because creating compound values such as "zebra:rainbow" invalidates the idea of having clean tags.