This is definitely possible, although the effort involved might be prohibitive.
You could easily use the "Set FSM <var>" actions to pass values onto another FSM, and then send that FSM an event called "DoThing"
The method FSM would do its thing with whatever variables it had when it got this event, and then set an output variable to the result and send an event to the triggering FSM (or just broadcast globally, although this is slightly slower, obv) to announce that it was finished and the return value was ready to collect.
During this process, the initial FSM could just be in an empty state that just listens for the announcement. When it gets this announcement, it uses "Get FSM <var>" to fetch the return.
As I said, it's a little convoluted, and you will need to be careful with concurrency if you are planning to call this method a lot, but it definitely works, because I've used it a few times myself.