I've hit a roadblock with pgfplots where it has difficulty plotting multiple functions at the same time in 3D. As it states in the manual on page 114, "it cannot combine different \addplot commands, those will be drawn in the order of appearance." So something that should be behind another object might not be if you plot it last.
Does this same roadblock occur in gnuplot and Asymptote? I'd prefer to stay open source, but will move to Mathematica or Maple if I have to. And the quality/prettiness of the graphics is important to me, which is one reason I wanted pgfplots to work!
You can try using Matlab. After generating a plot you require hold on and I think it solves your problem. They are not the prettiest, but they work well enough.