I think ACG is missing functionality that would be required for this. The texturenode appears not to have a setTexture function for common textures, as it always uploads the textures to GPU Memory if i am not mistaken. The images themselves are held in common RAM by the ImageStore.
I would propose to extend the texturenode by a common or shared texturestore, so textures referenced from this store are not reuploaded to gpu memory. as soon as the user requests changes to the texture a copy should be placed to the private texturestore (which could be the one that is implemented now). the shared texturestore should be emptied on program shutdown.
Another, less intrusive approach would be to replace the texturenode entirely by a shared texturenode. However this would require a mechanism to replace the texturenode as soon as changes are made to it (maybe use a function that only returns a const texturenode which is the shared texturenode, while the non const version of this function replaces the texturenode by a copy).