Storing a part of a complex asset in an asset bundle

I have a number of models in 3d Studio Max with multiple materials per model. Additionally those objects share a number of materials between them. For example Device1 have materials 1,2,3 and 4 applied; object Device2 have materials 1 and 5 applied; and Device3 has material 4 applied.

To avoid spawning different identical materials upon importing those models in unity I import them in a single FBX file. I then have and asset with a number of children. To be able to place them separately inside a scene I create a prefab for each object (child asset). I get something like this:

Now I store all materials in an asset bundle, and want to store models in different asset bundles.

The question is: if I place a prefab Device1 in an asset bundle with BuildAssetBundleOptions.CompleteAssets option, will it place the whole asset in the bundle or only the mesh that prefab is linked to? Also what sequence of push/pop dependencies should I use to achieve the right result?

See the docs which say:

For example if you pass a Mesh into the BuildPipeline.BuildAssetBundle function and use CompleteAssets it would also include the game object and any animation clips in the same asset.

Essentially CompleteAssets will include everything that is setup on the asset.

The Push/Pop dependencies to achieve "the right result" depend on what you mean by "the right result". What is the result that you desire?