Sorry about confusing things
, Let's see if I can clarify:
The filesystem is actually read/write all the time, but any changes you make are only sitting in RAM unless you manually save them to the save file. Changes made in top level RAM layer of the file system are only committed to disk when you run the 'save2flash' command - this syncs any changed files in RAM to the actual savefile on your C drive (or wherever it's stored). Save2flash is run at the end of the mpdPup setup wizard and also when you do a graceful shutdown using the shutdown/reboot commands. The current version queries you whether you want to save the changes, but I think I'm going to go back to automatically saving the changes any time someone actually shuts down/restarts from the CLI.
The desktop oriented versions of Puppy Linux make the above automatic - generally by mounting the save file at the top layer of the file system instead of RAM (Pupmode 12), or periodically syncing the savefile (default desktop oriented PUPMODE 13). I've made mpdPup a little different in the attempt to make it more like an appliance and also more audiophile oriented.
As you correctly inferred, I do force PUPMODE 13 during the boot process,. This is not a trivial thing to change for the livecd (though not terribly difficult to change on your system once you understand the process, I can dig up a link with instructions if need be)
Even in PUPMODE 12 the save file needs to sit somewhere outside the original Puppy filesystem (the .sfs file), as that's a squashfs file and is truly read only - the .2fs file is just an ext2 filesystem in a file that is read/write. That's why you have the two files on your C drive - the .sfs was optional, but the wizard prompted you to copy it there to speed reboots - you could safely delete this file and the system would go back to fully using the CD to boot. The .2fs file can't be removed though as that's where all your changes/config are stored.
I've preferred this approach over systems where you need to manually mount/remount the filesystem in read/write mode - e.g. Voyage linux, since it takes most of the burden of understanding filesystem handling off the end user.
If you really want the C drive to be clean I strongly recommend taking a USB flash stick and dedicating it to this until you're ready for a more complete installation - the first post provides the install instructions using unetbootin. This way everything stays on the flash drive and all you need to do is make sure your BIOS gives USB boot priority - if USB boot isn't supported you can still keep all the files on the USB flash instead of the C drive.
I'm happy to share the in progress build - I've done a lot of work with that build to make it easier for others to hack on. I'll upload it later today and PM you the link - it's nearly ready for release, real life has just gotten in the way of my hobbies the last month or so - need to finish a couple init scripts. I'm also thinking about getting a repository uploaded so others can build their own system from scratch and contribute changes back - still a lot on the to-do list.