Another interesting thing about persistent variables is that they are stored in a physically different place in memory.
I had a project where I was low on standard variable memory (volatile) due to needed to store large SOAP responses from another application. When I upgraded the project from 9.3 to 9.4 the size of my strategy increased just enough that I got an out of space error when I tried to download to the controller!
I wasn't using a lot of persistent space, and so I changed some of my large string tables to persistent which moved them out of the area that was short on space (volatile memory), and then I was able to download my strategy. After looking at tech note 1646, I realize I could have also "initialized" the variables on download and this should have moved them to the same non-volatile memory area that persistent vars use.