My suggestions:
The easiest way to work around this bug without handcrafting the XML is to in Taverna where the workflow containing a nested workflow has been correctly loaded, right click on the nested workflow and select "Edit nested workflow". Click the "Workflows" menu and go back to the parent workflow. This should have created a copy of the nested workflow so that if you now save the parent, the nested workflow will be saved as part of the SCUFL of the parent.
We'll try to find a way to improve this, one reason why some users still like the reference version is that they can then update the nested workflow, save it, and all of the workflows including that as a nested workflow would use the new version.
My suggestion for how we (the developers) are going to fixing this is to show this explicitly in the GUI and not just in the XML, and allow the user to choose which one they want to go for, the copy or the filename, and additionally to save the filename as a relative reference if possible.
myExperiment should also give a warning if people try to upload a workflow with such missing references.
Another workaround is to use "Add Nested Workflow ... Open Location" and paste in the download URL of the nested workflow as it is on myExperiment. As long as the other user of the parent workflow is connected to the Internet, myExperiment is online, and the other user has access to the nested workflow there, such a parent workflow would also be shareable.
My suggestions: