This article seems to give RGB a bad rap but I think it makes the most sense for gradients. I wouldn't want a yellow to blue gradient to cycle through a (partial) rainbow of colors. But I also wouldn't really ever choose to make a pure yellow to pure blue gradient. Most pleasing gradients you see in the wild use colors that are more similar to begin with, so it's a bit of a strawman. It's really just about carefully…
The fixed points define only the end points of the splines. The space between the end points corresponds to the color value along the interpolation curve.
If we are in an rgb cube, we notice the "gray zone" is along the diagonal from (0,0,0 to 1,1,1).
If we take two colors opposite of this diagonal (say color_a={r=0.5, g=0.5, b=0.0} and color_b = {0.5,0.5,1 0} we notice if we linearly interpolate we go through gray (0.5,0.5,0.5) in the middle.
If in stead we move along a curved path that avoids the diagonal, trying to maintain the saturation we get a much nicer result.
This "curved path of roughly equal saturation" is easier to define in a colorspace such as HSV where the saturation is one of the spatial coordinates.
But as I always say, there is no theoretically "correct" way to define a gradient, only techniques optimized for some specific use case.
My personal opinion is that generally linear interpolation in RGB results in the least satisfying gradients but that is just my _taste_.