Depending on the design of your CPT, you may want to have it either way. By default, GMT interpolates in RGB space, even when the original CPT is in the HSV system. However, when you add the line #COLOR_MODEL=+HSV (with the leading ‘+’ sign) in the header of the CPT, GMT will not only read the color representation as HSV values, but also interpolate colors in the HSV system. That means that H, S, and V values are interpolated linearly between two colors, instead of their respective R, G, and B values.
but it seems that rainbow.cpt is using HSV interpolation but reads
# Standard rainbow colortable for hue = 300 (magenta) to 0 (red)
#
#----------------------------------------------------------
# COLOR_MODEL = hsv
#----------------------------------------------------------
0 magenta 1 red
#----------------------------------------------------------
Is that outdated documentation (and +HSV is no more) or am I misunderstanding? If the former, how/when is HSV interpolation enabled?