Can an app switch between bounded and unbounded without starting over?

Yes, the visionOS template does this. More info here.

You can either change the volume camera configuration in a scene or a load a new scene with an unbounded volume camera configuration.

There’s a new API coming in the beta version of visionOS that will give you the position of a volume when opening an immersive space (to create a more seamless transition) but we haven’t exposed this yet.