Do I have 2 sets of 2 two-way mirrored drives: D1 mirrors with D2, and D3 mirrors with D4?
Storage Spaces do not mirror whole drives in the first place – they allocate and mirror individual data slabs, more like Btrfs than RAID. You could have a few slabs mirrored between D1/D3, some between D2/D3, some between D1/D4, and so on.
The allocation is distributed proportionally according to disk sizes. (If I remember correctly, slabs are sized somewhere in the range of 256 MB or possibly 1 GB.)
See this TechNet article: Deep Dive: The Storage Pool in Storage Spaces Direct, it has good illustrations. (While it talks about server clusters, a 1-server "Spaces Direct" still works the same way as Spaces does on Win10.)
as the next experiment I decommissioned one disk D3, so 3 disks are remaining.
How are the files distributed now? The storage space's size has not changed. That is confusing.
All chunks from D3 were moved to other disks during the removal process.
The volume is now "thin provisioned", very much like a .vhd or .vmdk "dynamic disk" – because physical space is allocated on demand, the logical volume can appear larger than you can actually store, as long as you don't actually try to use all of it.
If the filesystem tried to write more sectors than Storage Spaces can physically allocate, it would probably start getting I/O errors, although Windows seems to have better integration for all types of thin-provisioned storage (Storage Spaces, .vmdk's, etc.) so I assume the filesystem itself would be informed of this and start refusing writes even before the physical pool runs out.
(Space can also be deallocated – the filesystem uses the same TRIM or UNMAP operation for thin volumes as it does for SSDs.)