The behavior you are describing seems like a bug to me. A couple of workarounds that I can suggest based on some simple tests with a metal frame with a sheet metal part on top like a cover:
1. Use the Auto Balloon function. It will only put balloons on parts that are displayed per the Display State. Of course, if you try to reattach them to a different point (which is almost always required) you again run the risk of SW 'seeing' the sheet metal parts instead of the components below.
2. Rather than using Display States, use the 'Select Bodies' function. Click a view and you will see the 'Select Bodies' button at the top of the property manager. You can then select exactly which bodies you want to be displayed in that view.
Ihope that the below specified lin'll be very useful to you.