Is there any sort of filesystem or volume manager on Linux that supports COW snapshots, but instead of writing out new blocks for a new snapshot, it copies the old, unchanged blocks and does an in-place replacement for the new write? I don't know if there's a formal name for this system design technique but it's a sort of inverse COW.
Specifically, in the language of LVM, I'd like to have a system with multiple physical volumes combined into a single volume group. There would be one read/write logical volume that contains the latest copy of filesystem data blocks. You could add a new physical volume and assign it to store a read-only (from userspace's perspective) historical snapshot of the read/write logical volume. As you make writes to the read/write logical volume the old copy of data is copied to your read-only physical volume and the new copy is written in place to the read/write volume.
The purpose of this design is to let you cleanly drop an old snapshot, all of its data and its physical volume in one go with little to no extra copying. If you did this in the normal way with LVM snapshots or a COW filesystem your old disk has a copy of all the un-COWed old data, instead of just the COWed old data, and you have to copy all of the untouched data off of the disk before it can be removed.