After some quality time with a debugger (

) I tracked down a combination of things.
First and simple, in the case of my specific trail system, the trail's shader needed "alphaGen vertex" in its stage parms, otherwise it always renders at full alpha.
Second and more complex, the trails code doesn't seem to account for any trail system with a destroyTime of greater than zero. Such trails never get populated with nodes, thus never render. So I fixed that.
Also, the alpha value determination doesn't use floating point math, so by the time a beam node's alpha gets sent to the renderer, it's either a 1 or a 0.
My changed version of cg_trails.c is here:
http://rafb.net/p/QLKJ7S62.htmlIt's got my comments in the appropriate section, I can create a proper diff file if people want, but I'm hesitant to say "here's a patch, fix your shiz Tremulous" because I don't yet consider myself much of a real programmer, and/or I haven't tested this extensively against all the Tremulous content. If the devs think this fix is worthwhile, hooray.