Nested spacers and height

It looks like spacers provide spacing dependant only on their parent view's context, so something like


VStack {
     ViewA()
     Spacer()
     ViewB()
     Spacer()
     ViewC()
}

will equally distribute spacing, but the following will not render equivalently. The "outer" spacer will push ViewBC down as far as possible, and then the spacer in ViewBC will do its thing (but usually will end up doing nothing because the outer spacer already took all the available spacing)


VStack {
     ViewA()
     Spacer()
     ViewBC()
}


where ViewBC is defined as


VStack{
     ViewB()
     Spacer()
     ViewC()
}


Bundling into ViewBC can be useful in situations where components that are reused often. So what's the workaround? Is there a way to tell SwiftUI that I want ViewBC to consume more of the available space? Or is the idiomatic expecation to render all components at the same level?