With a bit of experimentation, and an equal measure of perusing Dave Fanning's excellent web page (especially here and here), I have finally figured out how to get colors in IDL to behave in a reasonable way. On a 24-bit display, I can now get color tables working correctly in plots, and yet I can also use any color I want at any time, too. Here's how:
(Make sure that X windows is configured for 24-bit True Color; this is the default on a Mac but can be changed in the X11 preferences. Leave it at the default.)
device,decomposed=1
Try "color = fsc_color(/select)" to see a dialog with the full color list.
!p.multi=[0,2,2]
loadct,3
imdisp,dist(200),/axis,color=fsc_color('pink')
xyouts,50,50,"Data!",color='00BB10'x
xyouts,150,150,"More Data!",color=fsc_color('turquoise')
loadct,5
tvimage,dist(100),/keep_aspect
plot,sin(findgen(100)/10),color=fsc_color('orange red')
xyouts,30,0.5,"A Sin Wave",color=fsc_color('Dodger Blue')
contour,dist(256),color='FF00A0'x,/xs,/ys
which produces the following: 
Note that this lack of support for 24-bit color in postscript plots is pretty much inexcusable brokenness on the part of RSI/ITTVIS. Humbug.