[TL;DR: when I make an image from non-persistent to persistent, make some changes,and return it to non-persistent again, the modifications made during the persistent state are lost.]
I want to make some changes to an existing image, which has been previously used as non-persistent. I delete all VMs which have been using it, change the status to persistent, instantiate a new VM using this image (the image is visible as USED_PERS in Sunstone), make some changes, shut the VM down, wait for its state to be poweroff/lcm_init in Sunstone, delete the VM, make the image non-persistent, and instantiate yet another VM on top of it. The disk looks the same as it was at the beginning, the modifications made during the last persistent state are lost.
What works is to clone the image, immediately make it persistent (before instantiating any VMs on top of it), only then instantiate the first VM on top of it, make the necessary modifications, shut the VM down, make the image non-persistent, (delete the original image and rename the cloned one,) and instantiate VMs on top of it as needed.
It seems that the difference is whether there previously has been a non-persistent VM instantiated on top of the image or not. Is it a bug or an expected behaviour?