Thanks! Looks like there were several pieces to the puzzle. To get the functionality I need, I created a view with an input/output parameter to which the radio group's index is bound. That is then embedded into a tab with the runWhileHidden property set to true, then I'm using a startup script to open and activate the tab in question on startup. The last step is necessary because the tab has to be loaded once before it can run while hidden.
ETA: I'm still waiting on support to tell me if this is a bug. Seems to me like a binding on the index of a radio group should either update all dependent properties or none at all.