The hardware changing explains most of it. It went from everything having indexed palettes to full 24bit color.
So now it’s usually faked with a shader. Replacing a color at a time is the most flexible albeit slowest way.
Effects in construct only can utilize a subset of what can be done with shaders.
The fastest way could be to to only make an images with red 0-255 and use an array uniform with the palette and just use the red as a lookup. It’s a bit tedious to create the art that way, and besides it’s not really feasible to modify the construct renderer to do that.
Another way to fake it is by just duplicating sprites to have different colors. Yet another is make the sprites out of multiple parts and change the color of those as needed.