Hi,
fsm variables are only locals unfortunatly, so using get/set FSM xxx is the way to go, and yes it means duplicating your variables in each fsm you want to use them. I too would like to see some ways to improve this, but I fear it would be at a great cost of mis usage and mis understanding.
Right now, when I have to do this, I name my variables in a way that I know who's the master fsm variable and who's a slaved variable, this way when I look at an fsm I know I shoudl not rely on such and such variables because marked "slaved".
"my float - slaved" for example will do or "**my float", something you adhere and conform in your project and it will be good.
Bye,
Jean