VMWare/ESX Snapshots vs Libvirt snapshots vs LVM2 snapshots
Solution 1:
and if you delete a snapshot, they [the deltas] are deleted so either way you are left reading and writing only to the primary vmdk file again.
Deleting a snapshot without reverting to it will cause the delta file to be applied to the VMDK. Other than that, your explanation for VMWare seems spot on. I can't help with the other platforms, though.
That said, normal copy-on-write like you'd see on a storage array or with VSS in Windows is something that writes to the actual volume after saving the snapshotted state of the data. If the VMWare snapshot were copy-on-write, it would be modifying the VMDK after populating the delta file with the old version of whatever was being written.
Solution 2:
Is this accurate, and is it fundamentally the same for LVM and KVM snapshots?
Yes and yes.