The labelling engine will always run last and cover all other objects if you continue to auto generate the labels (ArcGIS descktop also has different layers it builds to create a drwaing and I believe the label layer is the last to draw and always on top). There is no mechanism for covering the labels in that case.
I believe you would have to covert the labels to annotation or graphics to make them a layer that can be covered. At that point they become static and will not regenerate in response to panning or zooming of your data frame. I have never tried to get the effect you are looking for, so you would have to experiment on both the initial placement properties of your labels and then the conversion to be able to rearrange the layer order.
I have the same problem. A trick I use to get around this is this: Use "invisible" labels.
1. Pick the layer whose symbols you don't want covered up 2. Enable labels for that layer, make label weight "HIGH". Make the text of the label invisible, aka "no colour". Make the label at the CENTER of the point or line. Play around with the settings and label fields to something that basically covers your symbol. 3. For the other labels, set label weight "medium" or "low".
At times i've had to make a complete dummy layer just for the purpose of squashing those pesky unwanted labels. Hope this helps!
It sounds like this will not allow symbols to draw on top of labels but just prevents labels from getting placed on symbols. So, in this case could you not just use feature weight to get the same effect but a little bit more elegantly...