Yep, also happened to me
This can be a real surprise if you do not know that those icons and save functions in the Footprint editor change, depending on the origin of the Footprint.
Especially if you had not realized yet that the PCB has copies of the footprints embedded in the file.
Realizing this happens is already a big step of not making the same mistake again.
But once you know this, it’s not too difficult to work with it.
The Default KiCad libraries are read-only. (And for good reasons!) So you do not have the option to save the changes back into those libraries.
I do not know whether I like the ease of being able to modify a footprint by loading it from a PCB directly into the footprint editor, or I dislike it because you have to think more about managing footprints both in PCB files and (custom) footprint libraries.
My own projects develop very slowly, they can take several years, and in that time may see multiple KiCad versions with different library versions, and I had some trouble with those. So now I’ve settled on using the default libraries for creating a project (they’re quite good now), but then quickly copy all used schematic symbols and footprints used in a project to project specific libraries.
In Pcbnew there is:
Pcbnew / File / Archive Footprints
This can export all used footprints and even make a project specific library to put them in.
Synchronizing this with the schematic is another story though.
In the end it comes down to first knowing that these options are available (which will be a surprise to many newcomers, and many may get confused by this) and then choosing a work flow that suits you and sticking with it.
As a little test I made a little project this afternoon, with 2 resistors:
I assigned a 0805 footprint to both, then [F8] to Pcbnew and then [Ctrl + e] to edit one of the footprints, and saved it directly back to the PCB, with result:
After that I went back to the schematic and did an update with [F8] again.
Pcbnew retains the modified footprint, regardless of the settings during the update.
Then:
Pcbnew / File / Archive Footprints / Create new library and Archive Footprints
After that I opened the Footprint editor from the project manager and looked into the library, and it only has the original 0805, not the modified one.
The easiest way I know to put such a modified footpint in a library is to select a footprint on the PCB in Pcbnew, then Edit it with the footprint editor and:
Footprint Editor / File / Save as
Then select your project specific library and save it under a new name.
To make the circle complete, you also have to update the footprint link in the schematic to reference the changed footprint.
Another confusing part for newcomers, (and also long time users) is the different behaviour of Eeschema and Pcbnew in “standalone mode”.
It feels like I’m rambling too much today.
Does this add anything useful?